предотвращение слияния git с основной веткой - PullRequest
10 голосов
/ 17 ноября 2011

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

Если в мастер добавляются новые функции или исправления ошибок, я хотел бы иметь возможность извлекать / объединять их в экземпляры (ветви) моего проекта, но я почти никогда не хочу объединять изменения из ветвей в мастер. Это произошло недавно по ошибке и привело к серьезным головным болям. Git pull для обновления репозитория объединил все в основной ветке, а затем был перенесен обратно в основной репозиторий.

Есть ли простой способ запретить слияние с мастером? Или, по крайней мере, требуется флаг --force?

Ответы [ 3 ]

2 голосов
/ 17 ноября 2011

Вы можете не допустить слияния с мастером из других веток, запретив кому-либо вставлять ветку мастера.Человек с властью может сделать это.Gitolite - это то, что позволяет вам тонко настроить доступ к веткам.Вы также можете написать свои собственные перехватчики на стороне сервера и отклонить обновление главной ветки, если вы не являетесь конкретным пользователем.

1 голос
/ 22 ноября 2011

Git очень рад работать с несколькими удаленными репозиториями.

Я бы рекомендовал использовать один удаленный репозиторий для каждого пользовательского экземпляра. Это не изменит ваш рабочий процесс, поскольку Git может объединять любые две ветви независимо от источника.

Чтобы обновить «пользовательский экземпляр» с исправлениями ошибок из «главного пульта», вы должны напечатать что-то вроде

git checkout <custom-branch>
git fetch main
git merge main/master

где main - это удаленный репозиторий, на который вы ссылаетесь как master (я изменил имя, чтобы избежать путаницы между веткой и удаленным)

Для локальных филиалов не указывать main в качестве удаленной ветви отслеживания, вместо этого указывать конкретный экземпляр для удаленного управления. то есть один удаленный репозиторий на пользовательский экземпляр.

Чтобы отправить изменения в ваш пользовательский экземпляр, используйте

git push

В редком случае, когда вам нужно отправить изменения вверх по течению в "главную" ветку, используйте

git push main
0 голосов
/ 21 ноября 2011

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

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