Есть ли рабочий процесс в Git, чтобы поделиться одним файлом в нескольких филиалах? - PullRequest
4 голосов
/ 16 декабря 2011

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

Учитывая приведенный выше сценарий, мое требование: если я внесу изменения в базовые классы, это должно быть отражено во всех ветках git.

Как этого добиться?

Или есть какой-то другой рабочий процесс для достижения того же?

Ответы [ 2 ]

5 голосов
/ 16 декабря 2011

Через git rebase

Вы можете управлять вашей конкретной платформой через git rebase вместо git merge. В этом случае вы сможете изменить ветвь ядра, а затем перебазировать другие ветки в ней, сохранив изменения, относящиеся к конкретной платформе.

Пример рабочего процесса.

Создание веток платформы

git checkout master
git checkout -b platform1

git checkout master
git checkout -b platform2

Внести изменения в ядро ​​

git checkout master
# make modification
git commit

Внести изменения в платформу

git checkout platform2
# make modification
git commit

Импорт основных изменений в платформах

git checkout platform1
git rebase master

git checkout platform2
git rebase master

Через git merge

Также возможно использовать git merge с опцией strategy, как сказано в git merge manual .

git checkout platform2
git merge -s recursive -X ours master

Это всегда будет выбирать изменения, относящиеся к конкретной платформе в случае конфликтов

0 голосов
/ 16 декабря 2011

В git такого нет.

Если вы действительно после git-решения, я предлагаю создать "общую" ветку и объединить все ваши ветви.

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

Также я думаю, что вы могли бы сделать* * * * * * * * * * * * * * * * * * * * * * * * * * * * *

* * * * * * * * * * * * * * * * * * * * * * * * '' ТРУДНО ”. Утомительно, но должно работать.”

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

CONS: Вы не получите слияния, как с ветками git.

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