Как сохранить локальный файл или удаленный файл во время слияния с помощью Git и командной строки?

Я знаю, как объединить модификации с помощью vimdiff, но, полагая, что я просто знаю, что весь файл хорош, чтобы сохранить или выбросить, как мне это сделать?

Я не хочу открывать vimdiff для каждого из них, я хочу изменить команду "keep local" или "keep remote".

E.G: Я получил слияние с файлами, отмеченными как измененные, потому что кто-то открыл его под окнами, изменив EOL, а затем заработал. При слиянии я хочу просто оставить свою собственную версию и отбросить его.

Я также заинтересован в обратном: я напортачил много времени и хочу принять удаленный файл, отбросив мои изменения.

Ответ 1

Вы также можете:

git checkout --theirs /path/to/file

чтобы сохранить удаленный файл, и:

git checkout --ours /path/to/file

сохранить локальный файл.

Затем git add их и все сделано.

Легко, не так ли?:)

Ответ 3

В строке "thingie" обратитесь к man git-merge:

--ignore-space-change 
--ignore-all-space 
--ignore-space-at-eol

Обязательно добавьте autocrlf = false и/или safecrlf = false в клон Windows (.git/config)

Использование git mergetool

Если вы настроите mergetool следующим образом:

git config mergetool.cp.cmd '/bin/cp -v "$REMOTE" "$MERGED"'
git config mergetool.cp.trustExitCode true

Тогда простая

git mergetool --tool=cp
git mergetool --tool=cp -- paths/to/files.txt
git mergetool --tool=cp -y -- paths/to/files.txt # without prompting

Выполняет работу

Использование простых команд git

В других случаях я предполагаю

git checkout HEAD -- path/to/myfile.txt

должен сделать трюк

Изменить, чтобы сделать обратное (потому что вы прищурились):

git checkout remote/branch_to_merge -- path/to/myfile.txt

Ответ 4

git checkout {branch-name} -- {file-name}

Это будет использовать файл из выбранной ветки.

Мне нравится это, потому что posh-git autocomplete отлично справляется с этим. Он также устраняет любую двусмысленность относительно того, какая ветка удалена и является локальной. И --theirs не работал у меня в любом случае.