Що робити з гілкою після злиття


342

У мене було два відділення: masterі branch1. Я просто злився branch1назад masterі закінчив із цією гілкою. Чи потрібно його видалити чи просто дати йому сидіти? Чи призведе до його видалення будь-яку втрату даних?


Відповіді:


410

Після злиття гілку можна безпечно видалити:

git branch -d branch1

Крім того, git попередить вас (і відмовиться видалити гілку), якщо він вважає, що ви ще не повністю об'єднали її. Якщо ви примусово видалите гілку (з git branch -D), яка ще не повністю об'єднана, вам доведеться виконати кілька прийомів, щоб повернути неперевірені комісії назад (див. Нижче).

Однак є деякі причини, щоб зберегти філію навколо. Наприклад, якщо це гілка функцій, можливо, ви захочете робити помилки для цієї функції все ще у цій гілці.

Якщо ви також хочете видалити гілку на віддаленому хості, ви можете зробити:

git push origin :branch1

Це примусово видалить гілку на пульті (це не вплине на вже перевірені сховища, хоча і не завадить будь-кому, хто має доступ до push, повторно натискати / створювати її).


git reflogпоказує нещодавно перевірені зміни. Будь-яка філія, яку ви перевірили в недавній історії сховищ, також відображатиметься там. Крім цього, git fsckбуде інструментом вибору в будь-якому випадку фіксації втрати в git.


Якщо ви хочете зберегти гілку, ви можете створити тег перед видаленням. Якщо ви хочете повернутися до цього моменту, ви можете перевірити цей тег.
Іокус

3
@Joqus Я б краще запропонував зберегти це як галузь у такому випадку. Просто не публікуйте його.
Jonas Schäfer

На всякий випадок - якщо ви хочете "повністю об'єднати" гілку перед її видаленням, просто натисніть її після об'єднання, але перед видаленням. Щось на кшталтgit checkout master && git merge branch1 && git push origin branch1 && git branch -d branch1
автомат

25

Я віддаю перевагу RENAME, а не DELETE

Усі мої гілки названі у формі

  • Fix/fix-<somedescription> або
  • Ftr/ftr-<somedescription> або
  • тощо.

Використовуючи вежу , як мій мерзотник кінця переднього, він акуратно організує все Ftr/, Fix/, і Test/т.д. в папки.
Як тільки я закінчую з гілкою, я перейменую їх на Done/...-<description>.

Таким чином вони все ще існують (що може бути зручним для надання історії), і я завжди можу повернутися назад, знаючи, що це було (функція, виправлення, тест тощо)


4
Ви також перейменовуєте віддалені гілки?
VitalyB

22
Зберігати ці гілки видається зайвим , і божевільно перейменовувати їх. Я щось тут пропускаю? Ви завжди можете відтворити гілку. stackoverflow.com/questions/3640764 / ...
ksav

Немає сенсу зберігати гілки після їх об’єднання
растаман

2
+1 за ідею щодо перейменування на «Виправити, перевірити та виконати»… Утримання філій - це те, як підрядники отримують плату за мою компанію.
jpfreire

1

Якщо ви підете вперед і вилучіть гілку після об'єднання.
Просто подбайте про
всі посилання URL-адрес усіх гіперпосилань ваших ВІДКРИТИХ гілок, будуть ВЗАЄМО .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.