Я уже довольно давно пользуюсь GitHub, и обычно я нажимал на свои ветви функций и затем запускал запрос на извлечение, который я сам слил. Я обнаружил, что это помогло мне отслеживать, где я сливал ветви.
Но в последнее время я все больше и больше читаю о том, как работает Git, и я понял, что могу использовать коммиты слияния для ссылки при слиянии ветвей.
Итак, что я должен делать при слиянии ветки объектов в master:
выполнить коммит слияния на master, а затем отправить его в восходящий поток ИЛИ выдвинуть локальную ветвь и запустить запрос на извлечение?
Я прочитал « Представление запросов на извлечение» для команды из 2 человек - объединить мои собственные запросы? и каков рабочий процесс с двумя людьми в проекте, и я должен открыть пул-запросы из ветви на официальном репо или моем форке? но ни один из них, кажется, не отвечает тому, что я ищу.
источник
Ответы:
Механизм git-merge:
использование
git merge feature
while on master объединяет ветвьfeature
сmaster
и выдаетmerge-commit
(если ветвь не может быть быстро перенаправлена) в истории git. Для принудительного созданияmerge-commit
существа используйте--no-ff
опцию сmerge
.Механизм
запроса на
GitHub Issue
объединение слияния : Когда мы запускаем запрос на извлечение на GitHub, он создает место, где люди могут говорить и обсуждать коммиты в PR до слияния. Когда PR объединяется на GitHub, он делает то же самое, что иgit merge feature
.Что я должен делать?
Итак, что касается истории, между ними нет никакой разницы.
А что касается вклада, ваши участники не будут иметь ничего особенного для двух ситуаций. Они одинаковые (минус приятный маленький чат).
Лучшие практики:
И я не смог найти лучшие практики, но логика говорит, что PR не очень полезны, если в хранилище только один человек.
@lxrec и @amon помогли мне прийти к такому выводу.
источник
git merge
может не записать коммит слияния, если он может выполнить «ускоренную перемотку вперед». Для принудительной фиксации слияния вы можете добавить--no-ff
опцию.Как сказал Ашхар , технически и исторически нет никакой разницы. Для проектов с небольшой командой я предпочитаю слияние напрямую, а не дополнительный этап создания PR. Тем не менее, когда функция нуждается в рассмотрении / обратной связи или когда это WIP и над ним будут работать несколько человек, я, как правило, открываю PR и добавляю список задач в описание PR.
Обратите внимание, что
git merge
может использоваться ускоренная перемотка вперед, если нет никаких изменений в master, поэтому вы можете захотеть использоватьgit merge --no-ff
. Я склонен неТаким образом, в заключение, используйте PR только тогда, когда вам нужно обсуждение. В противном случае просто слить напрямую.
источник