设置一个包含一些混乱提交的git存储库。一切都在运作,一切都很好,但我想删除/删除凌乱的提交 - 你如何去做?
由于
答案 0 :(得分:4)
如果您想要浏览整个历史记录,我认为最好的方式是交互式变基
git checkout master
git tag oldmaster
git branch newbranch sha1ofRootCommit
git rebase -i newbranch
你的编辑器应该弹出。删除您不想要的提交行。如果一切顺利且没有冲突,master
应该包含您的干净历史记录。
Here is a link to a similar question
正如CharlesB所说,如果您仍希望通过将pick
替换为squash
而不是删除该行来保留更改,则可以将提交压缩为单个。
答案 1 :(得分:1)
你的树
A - 乙 - C - d - 电子 - HEAD
如果要重置为提交C,请说出最终结果
A - B - C - HEAD,你可以做到
git reset --hard <shasum of your commit C>
如果您只想删除提交C,
A - B - D - E - HEAD,你可以做到
git rebase --onto <shasum of B> <shasum of C>
希望有所帮助