Как избежать слияния ад в GitHub/BitBucket

В нашем репо мы получаем много таких компромиссов:

Merge branch 'master' of bitbucket.org:user/repo

Это происходит каждый раз, когда разработчик синхронизирует свою локальную вилку с репо верхнего уровня.

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

Я знаю, что могу выполнить git rebase, если это делается только в моей локальной виртуальной машине, есть ли какая-либо эквивалентность в интерфейсе GitHub/BitBucket?

Как вы, ребята, это делаете?

Ответ 1

Разделители функций перед слиянием

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

git checkout master
git checkout -b feature/foo

# make some commits

git rebase master
git checkout master
git merge --ff-only feature/foo

В Rebase также есть много флагов, включая интерактивную перезагрузку с флагом -i, но вам может и не понадобиться, если вы держите вещи как можно проще и хотите сохранить всю историю своих веток при слиянии.

Используйте флаг --ff-only

Помимо фальсификации, использование флага --ff-only гарантирует, что разрешены только перемотки вперед. Конец не будет выполнен, если вместо этого будет выполнено слияние. На странице руководства git -merge (1) говорится:

- только ff

Откажитесь от слияния и выхода с ненулевым статусом, если текущий            HEAD уже обновлен или слияние может быть разрешено как            ускоренная перемотка вперед.