如何将GitHub存储库中的最后9次提交合并为一次提交?
答案 0 :(得分:2)
git stash -u # save uncommitted changes
git reset --soft HEAD~9 # move back 9 commits
git commit # recommit them
git stash pop # restore uncommitted changes
要将结果推回GitHub,请确保您的本地副本在操作之前是最新的,并强制它:git push -f
。
答案 1 :(得分:1)
进行交互式变基:
git rebase -i HEAD~9
您将按时间顺序放入编辑器中,其中包含最近9次提交的列表。每个都以“挑选”一词开头。您可以将其中任何一个更改为“squash”或“s”,将其压缩到上一次提交中。您将有机会编辑压缩提交的提交消息。默认情况下,这将是连接在一起的所有提交的提交消息。
您还可以删除提交,将'pick'替换为'reword',以便有机会更改提交消息,'编辑'提交以及消息等。
交互式rebase功能非常强大,因此值得学习使用它。
答案 2 :(得分:0)
使用挤压: http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html
Squashing允许您将多次提交“压缩”为一次提交。所以基本上你的9次提交将成为一次提交。
答案 3 :(得分:0)
我认为最好的方法是使用git rebase interactive。
git rebase -i HEAD~9
这样做可以打开最后九次提交,你可以按自己喜欢的方式编辑它们。您可以删除最近九次提交中的任何一项。既然你想要结合(替换是有点共同的,所以避免使用那个词)所有这九个提交成一个,你应该压缩那些提交。
使用此网站了解有关git rebase interactive的更多信息。当我对git相当新的时候,我发现这非常有用。这种技术非常方便。 Git rebase interactive description