如何替换 N-number of Commit
How to replace N-number of Commit
如何将我的 GitHub 存储库中的最后 9 次提交合并为一次提交?
使用压缩:
http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html
压缩让您 "squash" 将多个提交合并为一个提交。所以基本上你的 9 次提交将成为一次提交。
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
.
进行交互式变基:
git rebase -i HEAD~9
您将进入一个编辑器,其中包含按时间顺序排列的最后 9 次提交的列表。每个都以单词 'pick' 开头。您可以将其中任何一个更改为 'squash' 或 's',以将其压缩到上一个提交中。您将有机会编辑压缩提交的提交消息。默认情况下,这将是连接在一起的所有提交的提交消息。
您还可以删除提交,将 'pick' 替换为 'reword' 以便有机会更改提交消息,'edit' 提交以及消息等
Interactive rebase非常强大,值得学习使用。
我认为最好的方法是使用 git rebase interactive。
git rebase -i HEAD~9
这会打开最后九个提交,您可以按照自己喜欢的方式编辑它们。您可以删除最后九次提交中的任何一次。由于您希望将所有这九个提交合并(替换有点混淆,所以避免使用该词),您应该 压缩 这些提交。
使用此网站了解更多关于 git rebase interactive 的信息。当我刚接触 git 时,我发现这非常有用。这种技术非常方便。 Git rebase interactive description
如何将我的 GitHub 存储库中的最后 9 次提交合并为一次提交?
使用压缩: http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html
压缩让您 "squash" 将多个提交合并为一个提交。所以基本上你的 9 次提交将成为一次提交。
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
.
进行交互式变基:
git rebase -i HEAD~9
您将进入一个编辑器,其中包含按时间顺序排列的最后 9 次提交的列表。每个都以单词 'pick' 开头。您可以将其中任何一个更改为 'squash' 或 's',以将其压缩到上一个提交中。您将有机会编辑压缩提交的提交消息。默认情况下,这将是连接在一起的所有提交的提交消息。
您还可以删除提交,将 'pick' 替换为 'reword' 以便有机会更改提交消息,'edit' 提交以及消息等
Interactive rebase非常强大,值得学习使用。
我认为最好的方法是使用 git rebase interactive。
git rebase -i HEAD~9
这会打开最后九个提交,您可以按照自己喜欢的方式编辑它们。您可以删除最后九次提交中的任何一次。由于您希望将所有这九个提交合并(替换有点混淆,所以避免使用该词),您应该 压缩 这些提交。
使用此网站了解更多关于 git rebase interactive 的信息。当我刚接触 git 时,我发现这非常有用。这种技术非常方便。 Git rebase interactive description