Подтвердить что ты не робот

Git слияние их шагов

Я имею дело с довольно несколькими двоичными файлами, сгенерированными программой. Для этих файлов автоматическое слияние не работает. То, что я хотел бы делать при слиянии, буквально берет один экземпляр или другой. Это не идеально, но я считаю, что это лучший подход.

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

git merge <branchname>
git checkout --theirs <filename>
git add <filename>
git commit

Это правильно, или я что-то не хватает?

Я хотел бы сделать это, не используя .gitignore

4b9b3361

Ответ 1

Если ваша цель состоит в том, чтобы сохранить одну или другую версию, тогда да, вы захотите использовать:

git checkout <--theirs|--ours> <path>
git add <path>`.

Конечно, как вы говорите, это не идеально. Если вы можете избежать этого, вы должны это сделать. Если можно, попробуйте принять привычки рабочего процесса, которые не изменяют эти файлы на расходящихся ветвях, которые впоследствии должны быть объединены. Если файлы генерируются из отслеживаемого контента, вы, вероятно, действительно хотите их игнорировать, если у вас есть все основания, не нужно, вместо этого вы можете сгенерировать их из слитого отслеживаемого контента, если это возможно.

Итак, изучите все ваши другие параметры, прежде чем делать это, но если нужно, у вас все получится.

Ответ 2

Посмотрите на использование .gitignore, чтобы игнорировать сгенерированные файлы. Возможно, вам придется делать git rm.