Разрешение конфликта Git с бинарными файлами - PullRequest
421 голосов
/ 10 ноября 2008

Я использую Git на Windows (msysgit), чтобы отслеживать изменения для некоторых дизайнерских работ, которые я делал.

Сегодня я работал на другом ПК (с удаленным репо brian) и сейчас пытаюсь объединить сделанные сегодня правки в мою обычную локальную версию на моем ноутбуке.

На моем ноутбуке я использовал git pull brian master, чтобы перенести изменения в мою локальную версию. Все было хорошо, кроме основного документа InDesign - это выглядит как конфликт.

Версия на ПК (brian) - последняя, ​​которую я хочу сохранить, но я не знаю, какие команды говорят репо использовать эту.

Я пытался напрямую скопировать файл на свой ноутбук, но это, похоже, нарушает весь процесс слияния.

Кто-нибудь может указать мне правильное направление?

Ответы [ 12 ]

0 голосов
/ 11 апреля 2019

мой случай кажется ошибкой .... используя git 2.21.0

Я сделал тянуть ... он жаловался на двоичные файлы:

warning: Cannot merge binary files: <path>
Auto-merging <path>
CONFLICT (content): Merge conflict in <path>
Automatic merge failed; fix conflicts and then commit the result.

И тогда ни в одном из ответов здесь не было результатов, которые имели какой-либо смысл.

Если я посмотрю, какой файл у меня сейчас ... это тот, который я отредактировал. Если я сделаю либо:

git checkout --theirs -- <path>
git checkout --ours -- <path>

Я получаю вывод:

Updated 0 paths from the index

и у меня все еще есть моя версия файла. Если я нажму и затем извлечу, вместо этого будет указано «1», но он все равно даст мне мою версию файла.

git mergetool говорит

No files need merging

и git status говорит

    All conflicts fixed but you are still merging.
    (use "git commit" to conclude merge)

Один из вариантов - отменить коммит ... но мне не повезло, у меня было много коммитов, и этот плохой был первым. Я не хочу тратить время на это.

так, чтобы решить это безумие:

Я только что побежал

git commit

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

git checkout <commit where the remote version exists> <path>

, который возвращает мне удаленную версию

затем отредактировал файл снова ... и затем подтвердил и нажал, что, вероятно, снова означает, что тратится место на другую копию двоичного файла.

0 голосов
/ 19 марта 2019

Я использую приложение Git Workflow для Excel - https://www.xltrail.com/blog/git-workflow-for-excel, чтобы решить большинство проблем слияния, связанных с моими двоичными файлами. Это приложение с открытым исходным кодом помогает мне продуктивно решать проблемы, не затрачивая слишком много времени, и позволяет мне без проблем выбрать нужную версию файла.

...