git常用命令行操作
大多数开发人员每天都会使用 Git,但许多人只是对其功能略知一二。
学习一些 git 命令行技巧可以改变游戏规则,让你更高效、更有成效,对版本控制更有信心。
下面简单介绍一些常用的git命令行操作,以下所有的编辑模式基于vim
挑选提交–cherrypick
需要来自另一个分支的特定提交?挑选提交可让您将其应用于当前分支,而无需合并整个分支。
如何使用:
挑拣单个提交
1 |
|
挑拣多个提交
1 |
|
挑拣一个区间内提交
1 |
|
终止或继续挑拣
1 |
|
存储修改
需要切换分支但又不想丢失当前更改?存储可让你保存工作而不提交,让你稍后返回
1 |
|
查看所有存储
1 |
|
应用某次存储
apply后面的名称是stash list的名称
1 |
|
合并提交
有时候我们提交过于随意,或者有几次提交修改的是同一个东西,此时我们可以合并提交
我们需要合并两次test提交,这里介绍两种方式
通过reset合并提交
git reset的本意是版本回退,回退时可以选择保留commit提交。我们基于git reset的作用,可以实现多次commit提交的合并。这个不需要vim编辑,很少有冲突
1 |
|
执行后文件重新变成modified状态,需要重新提交
通过rebase合并提交
1 |
|
输入此条命令后就会进入vim界面,最上面是我们需要合并的提交,倒序排列,下方是rebase的一些命令,这里我们只需要是用pick,squsah命令,如果需要丢弃某次提交的内容使用drop
输入i进入编辑模式
将两次提交都合并到test1这次提交中
然后esc返回,冒号wq,保存退出
退出之后,我们会进入再次进入vim,我们可以编辑commit信息
这里可以用之前的提交msg,也可以重新自定义编辑提交msg
再次输入i进入编辑模式,我们把之前的msg都注释,重新写一条
然后esc返回,冒号wq,保存退出
这就提示合并成功了
rebase也可以合并一个区间里的提交,类似与cherry-pick,具体操作和上方操作一样
1 |
|
警告:在多人协作开发中,尽量避免对于已经推送到远端的的提交进行合并操作,因为这样会造成其他人git分叉
查看本地git操作日志
有时候我们会有一些误操作,那么这个时候我们就可以使用reflog查看git本地操作日志,他可以让我们轻松回到误操作之前的操作reflog又称为git后悔药
1 |
|
reflog后面参数是列出操作的标准时间
- 前面8位编码类似于commitid,是当前操作的一次快照,通过reset操作我们可以回到任意操作对应的代码
- 中间是我们操作的分支已经操作的时间
- 最后就是我们当前是进行的何种操作。eg: commit, checkout, rebase, merge等
快速修复最后一次提交
忘记添加文件或在提交信息中输入错误?git commit —amend 可让您更新上次提交,而无需创建新提交
1 |
|