Восстановить историю от глупого слияния git-svn - PullRequest
3 голосов
/ 09 июня 2010

игроков:

master: ветка svn (фактическая, не локальная trackign) mybranch: локальная ветка

Моя ошибка:

[master] git svn rebase
[master] git merge mybranch
[master] git svn dcommit

Я сделал это дважды .

Можно ли как-нибудь исправить все это?Я думал что-то вроде:

  1. git checkout --hard [commit до слияния]
  2. git dcommit #, что для svn?
  3. git rebase mybranch
  4. git dcommit

Но, похоже, это не работает.

(я знаю, что мне следует: а) работать в местном отделении отслеживания и б. Перебазировать, а не объединить)

Я в отчаянии / хочу отправить пиво респондентам на стадии :)

1 Ответ

1 голос
/ 09 июня 2010

Поскольку переписывать историю на стороне SVN сложно, почему бы не попробовать dcommit новый коммит, который эффективно отменит то, что вы дважды передали дважды?

git log # grab the commit hash you want to revert
git revert <commit hash>
git svn dcommit

git revert

При наличии одного существующего коммита, отмените изменение, которое вносит патч, и запишите новый коммит, в котором он записан.

...