В нашем репо мы получаем много таких компромиссов:
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 уже обновлен или слияние может быть разрешено как ускоренная перемотка вперед.