git常用命令行操作

大多数开发人员每天都会使用 Git,但许多人只是对其功能略知一二。
学习一些 git 命令行技巧可以改变游戏规则,让你更高效、更有成效,对版本控制更有信心。
下面简单介绍一些常用的git命令行操作,以下所有的编辑模式基于vim

挑选提交–cherrypick

需要来自另一个分支的特定提交?挑选提交可让您将其应用于当前分支,而无需合并整个分支。
如何使用:

挑拣单个提交

1
git cherry-pick <commit-hash>

挑拣多个提交

1
git cherry-pick commit-hash1 commit-hash2

挑拣一个区间内提交

1
2
3
4
5
区间左开右闭
git cherry-pick commit-hash1...commit-hash2

区间左闭右闭
git cherry-pick commit-hash1^...commit-hash2

终止或继续挑拣

1
2
git cherry-pick --abort
git cherry-pick --continue

存储修改

需要切换分支但又不想丢失当前更改?存储可让你保存工作而不提交,让你稍后返回

1
git stash

查看所有存储

1
git stash list

git stash list

应用某次存储

apply后面的名称是stash list的名称

1
git stash apply stash@{0}

合并提交

有时候我们提交过于随意,或者有几次提交修改的是同一个东西,此时我们可以合并提交

git log

我们需要合并两次test提交,这里介绍两种方式

通过reset合并提交

git reset的本意是版本回退,回退时可以选择保留commit提交。我们基于git reset的作用,可以实现多次commit提交的合并。这个不需要vim编辑,很少有冲突

1
git reset HEAD~2 // 合并最近两次提交

执行后文件重新变成modified状态,需要重新提交

通过rebase合并提交

1
git rebase -i HEAD~2 // 合并最近两次提交

git rebase

输入此条命令后就会进入vim界面,最上面是我们需要合并的提交,倒序排列,下方是rebase的一些命令,这里我们只需要是用pick,squsah命令,如果需要丢弃某次提交的内容使用drop

输入i进入编辑模式
git rebase

将两次提交都合并到test1这次提交中
然后esc返回,冒号wq,保存退出

退出之后,我们会进入再次进入vim,我们可以编辑commit信息
git rebase

这里可以用之前的提交msg,也可以重新自定义编辑提交msg
再次输入i进入编辑模式,我们把之前的msg都注释,重新写一条
git rebase

然后esc返回,冒号wq,保存退出

git rebase

这就提示合并成功了

rebase也可以合并一个区间里的提交,类似与cherry-pick,具体操作和上方操作一样

1
git rebase -i commit-hash1^...commit-hash2

警告:在多人协作开发中,尽量避免对于已经推送到远端的的提交进行合并操作,因为这样会造成其他人git分叉

查看本地git操作日志

有时候我们会有一些误操作,那么这个时候我们就可以使用reflog查看git本地操作日志,他可以让我们轻松回到误操作之前的操作reflog又称为git后悔药

1
git reflog --date=iso

reflog后面参数是列出操作的标准时间

git reflog

  • 前面8位编码类似于commitid,是当前操作的一次快照,通过reset操作我们可以回到任意操作对应的代码
  • 中间是我们操作的分支已经操作的时间
  • 最后就是我们当前是进行的何种操作。eg: commit, checkout, rebase, merge等

快速修复最后一次提交

忘记添加文件或在提交信息中输入错误?git commit —amend 可让您更新上次提交,而无需创建新提交

1
git commit --amend

git常用命令行操作
https://www.qilijie.com/git常用命令行操作.html
作者
qilinjie
发布于
2025年1月8日
许可协议