Извлечь невозможно, потому что у вас есть файлы без файлов, git stash не работает. Не хочу совершать - PullRequest
36 голосов
/ 08 ноября 2011

Я просто хочу вытащить.У меня есть изменения, чтобы игнорировать мои файлы Gemfile и Gemlock, и я был бы рад просто перезаписать их и просто вытащить.Я пытался спрятать свои изменения, это не сработало для меня.Что мне делать?

git pull
M   Gemfile
U   Gemfile.lock
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.
~/projects/sms/apps2/apps2_admin(apps2)$ git stash save "saved"
Gemfile.lock: needs merge
Gemfile.lock: needs merge
Gemfile.lock: unmerged (4ea16799dba7bfe1db28adecf36dee1af5195c1a)
Gemfile.lock: unmerged (e77439c9f86d1d0eda7ae0787e3e158f90959e68)
Gemfile.lock: unmerged (d690d3860db1aa8e46c1bb2f4de3e52a297b5c26)
fatal: git-write-tree: error building trees
Cannot save the current index state
~/projects/sms/apps2/apps2_admin(apps2)$ git pull
M   Gemfile
U   Gemfile.lock
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.

Ответы [ 4 ]

54 голосов
/ 22 августа 2014
git fetch origin
git reset --hard origin/master
git pull

Пояснение:

  • Fetch загрузит все из другого хранилища, в данном случае того, которое помечено как "origin".
  • Сброс приведет к отмене изменений и возврату к указанной ветке «master» в репозитории «origin».
  • Pull просто получит все из удаленного хранилища и интегрирует.

См. Документацию по http://git -scm.com / docs .

38 голосов
/ 08 ноября 2011

Вы можете использовать git checkout <file>, чтобы проверить зафиксированную версию файла (таким образом, отменить ваши изменения), или git reset --hard HEAD, чтобы выбросить любые незафиксированные изменения для всех файлов.

2 голосов
/ 15 января 2014

Я пробовал и то и другое, и все равно получаю сбой из-за конфликтов.В конце моего терпения я клонировал мастера в другом месте, скопировал все в другую ветку и зафиксировал это.который позволил мне продолжить.Опция "-X их" должна была сделать это для меня, но это не так.

git merge -s рекурсивно -X их мастер

ошибка: слияние не являетсявозможно, потому что вы распаковали файлы.подсказка: исправьте их в рабочем дереве, подсказка: и затем используйте 'git add / rm' в качестве подсказки: уместно, чтобы отметить разрешение и сделать коммит, подсказку: или используйте 'git commit -a'.фатальный: выход из-за неразрешенного конфликта.

1 голос
/ 22 мая 2013

У меня была такая же ошибка, и я решаю ее с помощью: git merge -s recursive -X theirs origin/master

...