将一堆提交组合在一起的快速方法 (git)

Quick way to combine a bunch of commits together (git)

我有分支 master 和 feature。

Feature 在 master 之前有大约 20 个提交。

我想将所有提交压缩在一起,这样当我合并时我只有一个提交。有没有办法用一个命令来做到这一点?我知道我可以做一个交互式的 rebase;但我正在寻找一个让这一切变得简单的命令。

是的!

在主分支上:

git merge --squash feature-branch

您可以使用

git rebase -i {revision-number} 
git rebase --interactive {revision-number}

其中-i表示您将进入交互模式。您指定要从中进行合并的修订版。

进入交互模式后,您将 select 第一个 pick 选项,其他 squash。通过这种方式,您可以将来自功能分支的多个提交合并为一个。然后你可以这样做:

git checkout master
git merge feature

这里有一个很好的解释:

http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html