В соответствии с http://gitster.livejournal.com/42247.html, ветви могут быть следующими:
- "topic" branch =, которая содержит все связные изменения, связанные с одной функцией / исправлением ошибки / экспериментом / и т. Д.
- "интеграция" ветка = которая выбирает / и выбирает, из каких веток темы нужно объединить изменения.
У меня есть ветки темы x
, y
и z
У меня есть клиенты A
и B
, каждый из которых хочет / оплачивает свой набор функций.
клиент A
хочет x
и y
.Это достаточно просто:
git checkout A
git merge x y
и вуаля!У меня есть то, что мне было нужно.Но как мне автоматизировать / записать, какие темы должны объединиться в A?Это то, что я сделал.В моем конфигурационном файле у меня есть:
[branch "A"]
remote=.
merge=refs/heads/x
merge=refs/heads/y
, и теперь каждый раз, когда я хочу обновить ветвь А, я просто:
git checkout A
git pull
, и она автоматически знает, какие ветви тянуть.
Это хорошая и / или плохая идея?
Точнее, это то, что у меня есть в .git / config:
[branch "A.test"]
remote=.
merge=refs/heads/x
merge=refs/heads/y
Таким образом, эта ветвь A (которая является производственной ветвью) никогда не вызывает случайных изменений.