Ведение двух веток git с фиксированным набором различий - PullRequest
0 голосов
/ 27 апреля 2018

Я использую общий репозиторий git, который имеет две основные ветви: одну для доставки продукта и одну для конкретной платформы тестирования. Существует фиксированный набор различий между ними, которые необходимо поддерживать (несколько тысяч дополнительных файлов плюс некоторые изменения в существующих файлах), но кроме этого я хотел бы объединить изменения в одной ветви с другой.

Проблема: каждый раз, когда я объединяюсь из одного в другое, этот набор различий включается, поэтому я должен удалить различия до завершения объединения. Это происходит в обоих направлениях, поэтому я навсегда выбираю реальные изменения из «поддельных» изменений.

Как я могу поддерживать эти две ветви в Git-дружественном стиле, чтобы мне не приходилось убеждать Git игнорировать эти изменения?

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Узнайте хеш коммита коммита, который вы хотите объединить. (например, 96f402f1391)

Затем проверьте ветку, в которую вы хотите объединиться, и используйте cherry-pick

git cherry-pick 96f402f1391
0 голосов
/ 27 апреля 2018

Правильный способ сделать это следующим образом:

  1. Выберите одну из двух ветвей в качестве "основной" ветви, а другую в качестве "зависимой" ветви
  2. Когда есть изменения в основной ветке, используйте merge для переноса изменений в зависимую ветку
  3. Когда в зависимую ветвь вносятся изменения, вставьте коммиты обратно в основную ветвь.

Git запомнит «фиксированные» различия между двумя ветвями как произведение исторических коммитов на зависимую ветвь, и эти различия будут сохранены при слиянии мастера с зависимым. Как я заметил, Git пытается вернуть эти различия обратно в ветку master, если я сливаюсь с зависимого обратно в master; сбор вишни избегает этих изменений, только привнося «новые» различия. (Это означает, что вы должны отслеживать зависимые коммиты, которые должны быть перенесены в основную, но, похоже, нет пути к этому.)

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