git合并提交记录

引言

在使用git进行版本管理的过程中,开发人员代码的提交可能需要在多个分支之间进行切换,每个开发人员提交代码的习惯也是不一样的,有的喜欢开发完成提交,有个喜欢半个小时提交一次……有些时候我们并不希望在另一个分支上看到当前分支的多次提交记录,只希望将多个提交记录合并成一个记录,达到美化commit history的效果

合并提交记录

创建提交记录

首先在分支上创建了3个提交记录,如下图:


Jietu20181209-123901.jpg

合并提交记录

假设需要合并这3个提交记录,执行命令
git rebase -i HEAD~3
会有如下提示:

Jietu20181209-123225.jpg

pick是rebase时的指令,具体我们还可以使用如下指令:

  • 选择pick指令,git会应用这个提交,以同样的提交信息(commit message)保存提交
  • 选择reword指令,git会应用这个提交,但需要重新编辑提交信息
  • 选择edit指令,git会应用这个提交,但会因为amending而终止
  • 选择squash指令,git会应用这个提交,但会与之前的提交合并
  • 选择fixup指令,git会应用这个提交,但会丢掉提交日志
  • 选择exec指令,git会在shell中运行这个命令

接下来,如果我们修改提示文件:

pick 3e60dd4 创建合并提交记录
s 627c7d7 修改合并提交记录
s 3a259d9 完成合并提交记录

会有如下提示:


Jietu20181209-125021.jpg

如果我们不想修改任何信息,保存即可,也可以修改最终的提交信息后再保存。

然后我们再看下这时的git history:

* 44c536b - (HEAD -> feature) 合并提交记录完成 (4 minutes ago) <Blackfat>

可以看到3条提交记录,已经合并成了一条记录,并且修改了最终的提交信息。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 16,007评论 5 147
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 3,994评论 0 11
  • 之前用的博客园地址:http://www.cnblogs.com/BADTZ-MARU/,虽然只有两篇小东西,囧...
    BADTZMARU_ye阅读 185评论 0 1
  • 1 感谢《剽悍晨读》,今天的耳朵又享用了一顿美味早餐。 猫爷推荐的书为:《细节》,并分享了其中最精彩部分。 如何轻...
    孙国飞扬阅读 133评论 0 2