Слияние мерзавца Двоичных файлов (в особенности файлы проекта XCode)

У меня есть проект XCode при мерзавце, и у меня есть "экспериментальное" ответвление прочь моего "основного" ответвления. Оба ответвления отличались начиная с ответвления (так никакая быстрая передача!), и я объединяюсь "экспериментальный" в мое "основное" ответвление.

Я имею, устанавливают .gitattributes файл для обработки конкретного файла XCode (project.pbxproj) столь двоичный, как его нужно рассматривать как таковой. Однако я не уверен точно, как объединить его. Я не уверен, что тот конкретный файл делает, но если, например, он обработал, какие файлы были добавлены к проекту нет никакого способа, которым я могу объединить их, и поэтому я должен был бы вручную добавить определенные файлы назад к проекту (возможно не запоминание их всех). Как другие обрабатывают эту ситуацию?

Кроме того, я считал, что необходимо вручную обновить двоичные файлы (очевидно), или копию по различным версиям. Однако, после того как я в процесс слияния, файл в моей рабочей копии является "основной" версией. Как я могу получить доступ к "экспериментальной" версии? Я не могу проверить его, поскольку это разрушило бы процесс слияния.

Спасибо за внимание!

7
задан Michael Waterfall 18 January 2010 в 10:28
поделиться

1 ответ

В общем случае для двоичных файлов я рекомендую Тип слияния копирования . Gitattribute Директива .
То есть я просто скопирую файл, поступающий из удаленного конца слияния.

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

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

Мне нравятся файлы версий проектов (например, для Eclipse для Eclipse ), только если я знаю, что они:

  • не модифицированы, что часто (безусловно, не каждые разработчики)
  • только с использованием относительных путей
  • Нет данных, относящихся к одной рабочей станции

, если эти файлы не должны быть объединены (или будут тривиальными для объединения), я хочу только в VCS. В вашем случае, это, возможно, не так полезно иметь их в указанных VCS в первую очередь.


Примечание. Как уже упоминалось в руководстве GIT :

Во время слияния индекс удерживает три версии каждого файла. Каждый из этих трех «этапов файлов» представляет собой другую версию файла:

$ git show :1:file.txt  # the file in a common ancestor of both branches
$ git show :2:file.txt  # the version from HEAD.
$ git show :3:file.txt  # the version from MERGE_HEAD
9
ответ дан 7 December 2019 в 03:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: