Git合并多次提交

Git是一个非常强大的版本控制工具。实际工作中,我们经常需要对每次commit都按照冗长的模板来填写注释。然而很多情况下我们只是想在写试验性质的代码之前临时commit一下,如果新代码工作正常,就保留,否则就撤销修改。但是这样就导致一个问题:我们不得不填写很多完全没有必要填写的注释模板,并且还会导致Log的混乱。本文分享一种方法,利用 git diff 和 patch 命令可以解决这个问题。

比如,我们目前有两个branch,master和debug(其中debug的进度领先于master,用作开发)。我们想在debug中试验一些代码,需要临时commit一下:

然后我们又写了一些代码,发现这种思路是对的,需要保留,那当然要commit一下:

然后我想将这两次commit合并一下,作为一个完整的commit,并填写注释模板,那么我可以先使用

命令打包一个patch,例如:

然后切换到master分支,或者使用

回到初始版本,例如:

然后使用

,把刚打包好的patch打到现有的版本上,例如:

现在可以使用

命令检查一下文件状态,发现git显示出了这两个版本的差异,所以接下来我们就可以通过

命令来提交所有这些差异,并填写所有这些差异的commit注释模板。这样,就成功解决了文章开头提到的问题。
Happy Coding!

吃桔子的攻城狮

修炼ing……

发表评论