Git - объединение из удаленной в локальную ветку при обновлении того же файла - PullRequest
1 голос
/ 07 августа 2010

У меня есть локальная ветка, которая отслеживает удаленную ветку на git.В какой-то момент я обновляю файл 'x.out', но во время работы над этой веткой я пытаюсь извлечь с сервера последние изменения.Кто-то уже обновил «x.out», и git сообщает мне, что «не может перезаписать файл» (или около того), поэтому я должен добавить свои изменения в индекс и ТАКЖЕ зафиксировать свои изменения, прежде чем смогу успешно выполнить вытягивание.

  1. Проблема в том, что при таком подходе в репозитории получается 2 коммита: один коммит для локального изменения (потому что у меня была более старая версия с сервера 'x.out') и один коммит после того, как я"git add" мой измененный файл "x.out" (который в основном "ветвь слияния ..")

  2. Я не хочу, чтобы эти 2 шага фиксировались (журналы также выглядят ужасно) - трудно следовать тому, что должно было быть одним коммитом.Разве нет способа, как в SVN / Perforce, сказать при извлечении, что я хочу, чтобы мой локальный измененный файл был объединен с этим файлом с сервера (если автоматическое объединение возможно, если не объединить конфликт?)это всего лишь 1 коммит, а не 2 коммита ...

Ответы [ 2 ]

3 голосов
/ 07 августа 2010

Вы должны вытащить изменения и очистить конфликты (если они есть) локально.

$ git pull
 ...
file foobar not up to date, cannot merge.
$ git stash
$ git pull
$ git stash pop

А затем удалить конфликт и добавить файл.

2 голосов
/ 07 августа 2010

Вы можете попробовать git pull --rebase, что может несколько облегчить ситуацию.

В общем, в действительности нет ничего плохого в том, чтобы иметь дополнительный коммит.Просто получите приложение типа gitk или gitg, которое прекрасно визуализирует журнал.

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