Щоб об'єднати поточну гілку в іншу гілку, не перевіряючи іншу гілку:
Швидке злиття вперед
Це дійсно просто. За визначенням, швидке злиття вперед просто означає, що вказівник гілки переміщується вперед у дереві комітів. Тому все, що вам потрібно зробити, це просто імітувати це:
git branch -f master dev
Застереження: Це передбачає, що master
вказує на зобов'язання, яке також є у dev
філії чи в іншій галузі. Якщо цього не відбувається, ви ризикуєте втратити роботу! На відміну від того, git merge
що створить злиття (або скарга), коли перемотка вперед неможлива, цей метод мовчки змушує вказівник гілки вказати на інший фіксатор.
Це також передбачає, що ти єдиний, хто працює над репо, та / або знаєш, що робиш.
Порада. Якщо ви зробили git fetch
та у вас є нові зобов’язання origin/master
, ви можете перемістити master
відділення, не перевіряючи, використовуючи:
git branch -f master origin/master
Об'єднати через об'єднання
Це не завжди можливо. Щоб створити комісію злиття, вам потрібно зробити операцію злиття. А щоб зробити операцію злиття, ви повинні мати коміти в іншій гілці, які не є в поточній гілці.
Якщо у вас є коммітов в master
галузі , які знаходяться НЕ в dev
галузі, ви можете:
Відмова від відповідальності: Це просто підтвердження концепції, просто щоб показати, що іноді можливо зробити злиття з іншою гілкою без перевірки. Якщо ви хочете використовувати його щодня, ви, ймовірно, хочете зробити псевдонім для нього за допомогою перенаправлення оболонки або зробити сценарій оболонки для нього. Потім знову можна також зробити сценарій оболонки для більш короткого процесу, показаного в питанні.
git checkout -b temp
git merge --no-ff -e master
git branch -f master temp
git checkout dev
git branch -D temp
Пояснення:
- Ознайомтеся з тимчасовою гілкою, яка вказує на те саме, що і поточне відділення.
Об’єднайтеся master
у тимчасову гілку та запустіть редактор повідомлень про фіксацію. Якщо ви хочете, щоб об’єкт злиття виглядав так, як ви об'єднали dev
гілку master
, відредагуйте її з цього:
Merge branch 'master' into temp
до цього:
Merge branch 'dev'
Порада: Ви можете використовувати -m "Merge branch 'dev'"
замість того, -e
щоб бути швидшим.
- Оновіть
master
вказівник гілки, щоб вказати на об'єднання.
- Огляньте
dev
відділення.
- Примусово видалити тимчасову гілку.
Це все ще стосується вашого робочого дерева, але мінімально. Це не відколює дерево аж до стану оригіналу, master
щоб ще раз внести зміни в розвиток. Деяких це може не хвилювати, але для інших це може бути важливо.