开发者

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:

  1. git checkout --hard [commit before the merging]
  2. git dcommit # that to the svn?
  3. git rebase mybranch
  4. 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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜