git - 如何创建一个干净的存储库

时间:2011-07-25 17:10:47

标签: git

设置一个包含一些混乱提交的git存储库。一切都在运作,一切都很好,但我想删除/删除凌乱的提交 - 你如何去做?

由于

2 个答案:

答案 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>

希望有所帮助