也许我误解了 GIT 的工作原理。
我已经运行 git rebase -i HEAD~10
并且我可以将 10 个提交压缩为一个。问题是所有压缩的提交仍然存在,我认为它们将在将它们全部 merge 为一个后被删除。
这是预期的结果吗?如果是这样,我是否可以重写历史记录以删除无用的提交(因为这些更改已经在所有以前的提交都被压缩的提交中)?
最佳答案
当您开始交互式 rebase session 时,系统应该会提示您提供当前分支的最后 10 次提交的列表:
git rebase -i HEAD~10
pick as2i8dw first commit
pick ee361eb second commit
...
pick b2762sx most recent commit
您需要将此文件更改为以下内容:
pick as2i8dw first commit
squash ee361eb second commit
...
squash b2762sx most recent commit
然后您需要执行git commit
来保存更改。现在,在执行 git log 时,您应该只会看到 as2i8dw
提交,而不会看到其他十个提交。
话虽这么说,这是你做的吗?
关于git-commit - Git Squash 并删除以前的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31636098/