前言
学习工作中,越来越习惯使用git,本文记录一下常用的git命令,方便以后查阅。
配置
1、全局配置
1 | git config --list |
2、生成ssh密钥ssh-keygen -t rsa -C "voidking@qq.com"
,按3个回车,密码为空。
在C:\Users\Administrator\.ssh
下,得到两个文件id_rsa和id_rsa.pub。
需要注意的是,命令中的-C参数,后面跟的内容是注释。也就是说,内容随意,与github完全无关。
3、在GitHub上添加SSH密钥
打开id_rsa.pub,复制全文。https://github.com/settings/ssh ,Add SSH key,粘贴进去。
4、测试ssh git@github.com
,提示:
1 | The authenticity of host 'github.com (192.30.252.128)' can't be established. |
克隆项目
1、普通克隆
1 | git clone https://github.com/voidking/voidking.git |
2、切换分支
1 | git branch -a |
SSL certificate problem
1 | git config --global http.sslVerify false |
上传项目
1、master分支上传
1 | git add . |
2、其他分支上传
1 | git add . |
查看日志
使用git log
,只可以查看到当前分支的commit日志,而且不能查看已经删除了的commit操作。
若要查看全局日志,需要使用git reflog
或者git log -g
,可以查看所有分支的所有操作记录,包括reset操作、checkout操作、已经删除了的commit操作等等。
版本回退
版本回退常用git reset
和git revert
命令,这两个命令都是作用于当前分支(HEAD所在的分支)。git reset
是把HEAD向后移动了一下,而git revert
是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。
reset
1、每个文件单独版本回退
1 | git status |
2、全部文件版本回退
1 | git reset --hard 1fe37e1bcbb894a1b594cf405ae31880cbaa6cd7 |
3、远程仓库回退
1 | git reset --hard 1fe37e1bcbb894a1b594cf405ae31880cbaa6cd7 |
4、回退后回退
reset后,回退版本之后的commit操作记录,都被删除掉了。
如果回退过之后又后悔了,那么,需要查看全局日志,然后再次执行reset操作。
1 | git reflog |
需要注意的是,版本回退,我们没有使用git checkout
。
假设当前在bugFix分支,使用git checkout
,理论上输入如下命令:
1 | git reflog |
这时,输入git log
,发现版本完美回退了。但是,这只是假象,输入git branch -a
,发现HEAD从bugFix分支切换到了a246dcd那个commit。而bugFix分支,没有进行任何改变。所以,我们不使用git checkout
进行版本回退,而是使用它进行历史版本的查看。
revert
1、全部文件版本回退
1 | git revert cf000 |
2、远程仓库回退
1 | git push origin HEAD:branch_name |
回退过之后又后悔了,那么,执行reset操作即可。
1 | git log |