git: ветви разошлись; как действовать?

Мое локальное дерево разошлось с мастером:

$ git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 7 and 3 different commit(s) each, respectively.
#
nothing to commit (working directory clean)

Я попробовал git pull --rebase и потерпел неудачу:

$ git pull --rebase
First, rewinding head to replay your work on top of it...
Applying: * ...
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging ChangeLog
CONFLICT (content): Merge conflict in ChangeLog
Failed to merge in the changes.
Patch failed at 0001 * ...

Поэтому я сделал реверс с помощью git rebase --abort и теперь я в квадрате 1.

Что я хочу:

  1. "Экспортировать" мои 7 патчей в человекочитаемые diff-файлы (а-ля hg export).
  2. сделать мое дерево углеродной копией исходного/основного (а-ля hg strip).
  3. повторно применить мои 7 патчей один за другим вручную (а-ля hg import).

Я понимаю, что git rebase --continue делает это. Я сделал это, и это сработало (после нескольких ручных слияний и git add). Однако я хочу иметь возможность делать это вручную, поэтому мне интересно, какие команды git соответствуют командам hg выше.

Спасибо.

PS. Пожалуйста, не говорите мне, что использование файла ChangeLog с git - это глупость. Даже если это и так, это не мне решать.

31
задан sds 30 April 2012 в 16:17
поделиться