Как отменить "мерзавец добавить". во время слияния? - PullRequest
8 голосов
/ 24 июня 2010
$ git checkout to-branch
$ git merge from-branch
$ git status | grep unmerged
#  file1    unmerged
#  file2    unmerged
#  file3    unmerged
$ vi file1
$ git add .

Eek!Я не хотел "мерзавец добавить".Я имел в виду "git add file1"!

Теперь я не могу получить поведение вроде:

$ git show :1:file2

Я пытался:

$ git reset file2

и

$ git checkout -m file2

, но ни один из них не возвращает file2 в состояние «без соединения».git status не отображает его как необработанный, и у меня нет доступа к «git show: 1: file2» и т. д. Я хочу вернуть файл в исходное состояние.

Как я могу вернутьсядо состояния, в котором я находился до "git add".без потери моих изменений в file1?

Ответы [ 2 ]

13 голосов
/ 24 июня 2010

(не проверено). Вы пробовали

 git checkout -m /path/to/file2
 git checkout -m /path/to/file3

При извлечении путей из индекса этот параметр позволяет воссоздать конфликтующее слияние в указанных путях

Если это не сработает, у вас могут быть другие ответы на вопрос SO " Как вернуть конфликты git merge после слияния неправильно? "

3 голосов
/ 10 февраля 2017

Если у кого-то все еще есть эта проблема (как я только сейчас), вы можете (сейчас) сделать это:

git update-index --unresolve file2 file3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...