我在Git中合并了一些提交,现在我需要删除此提交,因为它有一些机密信息。我需要在合并之前将HEAD置于提交中。
答案 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
然后强行推动...但是当我遇到麻烦时我总是记得使用结帐,我一直都在分支机构之间切换'第