Recover history from foolish git-svn merge
the players:
master: the svn branch (actual, not local trackign) mybranch: a local branch
My开发者_Python百科 mistake:
[master] git svn rebase
[master] git merge mybranch
[master] git svn dcommit
I did this twice.
Is there a way I can remedy all this? I was thinking something like:
- git checkout --hard [commit before the merging]
- git dcommit # that to the svn?
- git rebase mybranch
- git dcommit
But this doesn't seem to work.
(I know I should a. working from a local tracking branch and b. have rebased rather than merged)
I'm in the frantic / willing to send beer to respondents stage :)
Since rewriting history on the SVN side is hard, why not try dcommit a new commit which effectively cancel what you have previously dcommitted twice?
git log # grab the commit hash you want to revert
git revert <commit hash>
git svn dcommit
git revert
Given one existing commit, revert the change the patch introduces, and record a new commit that records it.
精彩评论