如何删除提交?

时间:2013-01-18 22:52:20

标签: git

我在Git中合并了一些提交,现在我需要删除此提交,因为它有一些机密信息。我需要在合并之前将HEAD置于提交中。

2 个答案:

答案 0 :(得分:1)

我更喜欢使用git rebase来完成这项工作,因为会弹出一个很好的列表,我可以选择要删除的提交。选择要列出的提交数量,然后像这样调用

git rebase -i HEAD~3

样本列表

pick aa28ba7 Sanity check for RtmpSrv port
pick c26c541 RtmpSrv version option
pick 58d6909 Better URL decoding support

然后git将删除您删除的任何行的提交。

答案 1 :(得分:0)

还有另一种方法可以做到这一点,但在这种情况下我有一个解决方案。

假设您正在使用master分支。

首先,我检查我想成为master中最后一个的提交并重新创建master分支。

git checkout 2fa59698256c4c3fb85c6e32741071797d5965b3
git checkout -b master

然后我撤回,强制服务器删除它的历史记录。

git checkout --amend
git push origin master --force

这将删除之后的所有提交。

你可以使用git rebalse~x然后强行推动...但是当我遇到麻烦时我总是记得使用结帐,我一直都在分支机构之间切换'第