赞
踩
主要学习记录一下Cmder的使用、Git的使用及Cmder与Git的联动
观看Git直达: Git的使用
Cmder是cmd的豪华版,可以直接鼠标右键在任何文件夹位置cmd,无需cd命令,可以更换cmder背景图片和透明度,设置默认以cmd管理员身份启动,整体来说可以完全取代cmd。
官网直接下载:http://cmder.app/
进入官网以后,有上图中所指1.mini版和2.full版,推荐下载完整版,功能命令齐全,使用Git需要下载完整版,下载好解压文件包以后就可以使用。我将其解压在D:\cmder文件夹,在系统环境变量中Path下加入D:\cmder系统变量,如下:
以管理员身份打开cmd,执行以下命令即可,完了以后在任意地方点击右键即可使用cmder:
Cmder.exe /REGISTER ALL
在桌面任意处或文件夹任意地方右键,即可选择启动cmder,进入界面如下:
首先使用windows+alt+p进入界面设置:
可选择中文界面,也可以在图中位置选择cmder默认启动方式,如课设置默认以管理员方式启动:
在cmder/vendor中的clink.lua内做如下修改"λ"替换成"$"
有个很有意思的设置如下:
可以设置cmder背景图片如下:
其他设置可凭自己的编程习惯百度修改。
一般工作流程如下:
官网下载地址:https://git-scm.com/download
Git客户端安装过程自行百度吧,修改安装路径后基本上一路点下去就可以了。
由于直接安装git后使用git bash的exe文件与直接使用前文所提过的cmder full版本中的git for windows没有区别,所以关于git的使用主要在cmder中的git bash命令中讲解,所使用命令完全可以在git端直接运行
注:不使用cmder的读者可直接观看下一节Git的使用(cmder)
使用windows+alt+p进入界面设置:
按上图顺序配置git,其中第3,4步git名字可任意命名。
第5步的作用是给这个git命令分配一个好看的图标,直接利用了cmder中安装的git的内置图标,路径为:
/icon "D:\cmder\vendor\git-for-windows\usr\share\git\git.ico"
其中的D:\cmder替换为自己的cmder安装路径。
第6步最重要,起作用是打开这个git命令时选择让它实际执行的命令,命令路径为D:\cmder\vendor\git-for-windows\bin\sh.exe
,同理,替换前面的D:\cmder为自己的路径。
配置好之后,在任意位置右键点开cmder,按下图所示顺序即可打开cmder中内置的git bash命令。
打开git bash命令窗口,执行如下命令:
git config --global user.email "dreamer5z@163.com"
git config --global user.email "dreamer5z"
因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识,大家可以在对应位置填写自己的用户名和邮箱
注意:git config --global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。可自行百度。
什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。
所以创建一个版本库也非常简单,如下我是F盘 –> Git目录下新建一个testgit版本库。在命令窗口通过cd命令打开该目录F:\Git\testgit
(cmder用户可直接在该目录下右键执行cmder打开后选择git bash命令)。
(1)通过命令git init
把这个目录变成git可以管理的仓库,如下:
git init
这时当前testgit目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件,否则,会把git仓库给破坏了。如下:
(2)把文件添加到版本库中
Git提交文件到版本库有两步:
第一步:是使用git add
把文件添加进去,实际上就是把文件添加到暂存区。
第二步:使用git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支上。
首先要明确下,所有的版本控制系统,只能跟踪文本文件的改动,比如txt文件,网页,所有程序的代码等,Git也不列外,版本控制系统可以告诉你每次的改动,但是图片,视频这些二进制文件,虽能也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是知道图片从1kb变成2kb,但是到底改了啥,版本控制也不知道。
第一步:在版本库testgit目录下新建一个记事本文件 test.txt 内容如下:
hello 你好
,使用命令git add test.txt
添加到暂存区里面去。如下:
git add test.txt
第二步:用命令git commit
告诉Git,把文件写入到本地仓库。注:命令git commit -m “注释内容”
可在每次commit时添加注释。
git commit -m "add test.txt"
使用git status
命令查看是否还有文件修改但未写入到仓库:
git status
第三步:继续修改下readme.txt内容,比如在下面添加一行World 世界内容
,继续使用git status
来查看下结果,如下:
可以看到命令检测出了test.txt
文件已经有修改但并未commit到仓库。
接下来可以使用git diff test.txt
命令看看test.txt
改了什么内容:
git diff test.txt
如上可以看到,test.txt文件内容从一行hello 你好
改成二行添加了一行World 世界
内容。
注:我在这一步开始时中文部分显示不出来,显示出来是十六进制乱码,如:
<B3><A6><F2><D5>...
之后的git log
命令也可能出现这种情况,解决方法如下:
直接在git bash中输入如下设置命令:
git config --global core.quotepath false
git config --global gui.encoding utf-8
git config --global i18n.commit.encoding utf-8
git config --global i18n.logoutputencoding utf-8
# bash 环境下
export LESSCHARSET=utf-8
# cmd环境下:
set LESSCHARSET=utf-8
并将将最后一个变量LESSCHARSET
和对应值utf-8
添加到Windows环境变量中:
知道了对test.txt
文件做了什么修改后,继续提交到仓库,提交修改和提交文件是一样的2步(第一步是:git add 第二步是:git commit)。如下:
git add test.txt
git commit -m "add World 世界 to test.txt"
git status
用git status
查看发现文件全部提交。
如上,我们已经学会了修改文件,现在我继续对test.txt
文件进行修改,再增加一行内容为begin 开始
.继续执行命令如下:
现在已经对test.txt
文件做了三次修改了,可以使用git log
查看下历史记录,(注:出现中文十六进制乱码请参考这里)如下所示:
git log
git log
命令显示从最近到最远的显示日志,我们可以看到最近三次提交,最近的一次是add begin 开始 to test.txt
,上一次是add World 世界 to test.txt
,第一次默认是add test.txt
。如果嫌上面显示的信息太多的话,可以使用命令git log --pretty=oneline
演示如下:
git log --pretty=oneline
现在我想使用版本回退操作,我想把当前的版本回退到上一个版本,要使用什么命令呢?
可以使用如下2种命令,第一种是:git reset --hard HEAD^
那么如果要回退到上上个版本只需把HEAD^
改成 HEAD^^
以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset --hard HEAD~100
即可。
cat test.txt
git reset --hard HEAD^
cat test.txt
执行回退命令前用命令cat test.txt
查看test.txt
文档中的内容;执行回退命令git reset --hard HEAD^
;再执行命令cat test.txt
查看test.txt
文档中的内容。可以看到,内容已经回退到上一个版本了。我们可以继续使用git log
来查看下历史记录信息,可以看到提交的add begin 开始 to test.txt
记录没有了。
如果又想回退到最新的版本,如:有begin 开始
的内容要如何恢复呢?我们可以通过版本号回退,使用命令方法如下:
git reset --hard 版本号
,但是现在的问题假如我已经关掉过一次命令行或者333内容的版本号我并不知道呢?要如何知道增加3333内容的版本号呢?可以通过如下命令即可获取到版本号:git reflog
演示如下:
git reflog
通过上面的显示我们可以知道,增加内容begin 开始
的版本号是3fd89b1
.我们现在可以使用命令git reset --hard 3fd89b1
来恢复了。演示如下:
git reset --hard 3fd89b1
1、撤销修改
第一:如果知道要删掉哪些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区,最后commit掉。
第二:可以按以前的方法直接恢复到上一个版本。使用git reset --hard HEAD^
第三:新方法,命令git restore – test.txt
,该命令的意思是将工作区修改的文件(即还没有add到暂存区)恢复到最近一次add到暂存区的内容状态。演示如下:
在test.txt
中新增一行内容12345
,执行如下命令:
cat test.txt
git restore -- test.txt
cat test.txt
2、删除文件
在版本库testgit目录添加一个文件b.txt
,然后提交。如下:
直接在目录下删除b.txt
文件或者使用命令git rm b.txt
,然后commit,如下:
git rm b.txt
现在我们已经在本地创建了一个Git仓库,又想让其他人来协作开发,此时就可以把本地仓库同步到远程仓库,同时还增加了本地仓库的一个备份。
常用的远程仓库就是github:https://github.com,接下来我们演示如何将本地代码同步到github。
在github上创建一个账号,然后在github上创建一个仓库:
按图所示输入远程仓库名,选择公有(可被其他人看到)还是私有(Github被微软收购后创建私有库免费),点击创建仓库。
Github支持两种同步方式“https”和“ssh”。
如果使用https很简单基本不需要配置就可以使用,但是每次提交代码和下载代码时都需要输入用户名和密码。
所以我们使用ssh方式,只需要生成一个密钥对(一个公钥一个私钥),然后把公钥放到github的服务器上,之后首次连接需要输入用户名和密码,后面便可直接连接。
第一步:创建SSH Key。在用户主目录下,如我的目录为C:\Users\hfut2
,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果有的话,直接跳过此如下命令,如果没有的话,打开命令行,输入如下命令:ssh-keygen -t rsa
ssh-keygen -t rsa
中途遇到选项直接按Enter,使用默认设置即可。
这是引用的别人的图,我的已经安装过了,所以会显示如下:
执行命令完成后,在window本地用户.ssh目录C:\Users\hfut2.ssh
下面生成如下名称的公钥和私钥:
密钥生成后需要在github上配置密钥本地才可以顺利访问:
在key部分将id_rsa.pub
文件内容添加进去,然后点击Add SSH key按钮完成配置:
现在,我们根据GitHub的提示,在本地的testgit仓库下(F:\Git\testgit)运行命令:
git remote add origin git@github.com:dreamer5z/testgit.git
git push -u origin master
如果出现如下错误:
可以先执行如下命令,然后再执行上面的命令:
git remote rm origin
把本地库的内容推送到远程,使用 git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。第一次执行push命令时需要Github的账户和密码,推送成功后,可以立刻在github页面中看到远程库的内容已经和本地一模一样了,如下所示:
从现在起,只要本地作了提交,就可以通过如下命令:
git push origin master
把本地master分支的最新修改推送到github上了,现在你就拥有了真正的分布式版本库了。
to do:
创建、合并和推送分支
Github多人协作
https://blog.csdn.net/weixin_44950987/article/details/102619708
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。