0
我的一个队友做了一个提交并推送它。它在git树中导致合并。 问题在于代码被标记,并且此推送使它看起来像提交位于标记之前。实际情况是提交在标签之后。 合并后还有其他推送。现在,我想完全从gitk树中删除这个提交。我怎样才能做到这一点?如何恢复在gitk树中导致合并的提交?
我的一个队友做了一个提交并推送它。它在git树中导致合并。 问题在于代码被标记,并且此推送使它看起来像提交位于标记之前。实际情况是提交在标签之后。 合并后还有其他推送。现在,我想完全从gitk树中删除这个提交。我怎样才能做到这一点?如何恢复在gitk树中导致合并的提交?
没有重写历史记录然后用git push -f ...
推动它,没有办法改变gitk树的外观。如果你想恢复合并提交本身(这些更改已合并到你的分支中),你可以像使用正常提交一样使用git revert <commit-hash>
。它会创建一个新的提交来恢复合并提交的更改。
最简单的方法来删除合并从树承诺是
git checkout -b TESTING
(创建一个临时党支部与测试)git branch TMP <commit-on-YOUR-branch-just-before-merge>
git rebase TMP -i
你将不得不在编辑器中删除合并到分支中的其他分支的所有提交。如果一切做得很好:
git branch -f YOUR_BRANCH TESTING
git push -f ...
我希望我可以做一个git复位头或类似的东西,摆脱了从树上 – user811433 2013-03-19 16:52:44
随着'git的复位承诺..你可以删除最后一次提交,但是你必须用'git push -f'来推动你的更改,这会给其他团队成员带来麻烦。此外,您的标记将保留,除非您将其移至“git push --tags -f”。 – 2013-03-19 16:58:55