Git восстановить один файл, который был удален во время слияния - PullRequest
43 голосов
/ 19 января 2010

Я сейчас нахожусь в ветке 'foo'.Я только что побежал git merge master.Единственная проблема в том, что в foo был определенный файл, который я хотел сохранить.Есть ли способ получить его обратно, но сохранить все остальные изменения от мастера слияния?

Ответы [ 2 ]

46 голосов
/ 19 января 2010

Попробуйте что-то вроде этого:

git checkout HEAD -- filename

Это откатит ваш файл обратно на один коммит. Если вы хотите вернуться к конкретному коммиту, вы можете использовать хеш коммита или добавить ^ N в конец ключевого слова HEAD, например HEAD^2.

0 голосов
/ 19 января 2010

Я не уверен, как исправить проблему из текущей ситуации, но вы можете посмотреть на git merge -s ours. Документы здесь .

Рабочий процесс будет

  1. Создать ветку a из master
  2. Произведите пользовательское изменение в ветке a, которое вы не захотите сливать обратно в master
  3. Выезд master и git merge -s ours a
  4. Проверьте a и продолжайте работать и совершать.

Теперь при объединении с мастером пользовательские изменения на шаге 2 будут игнорироваться.

...