Повторна практика використання об'єднаної гілки?


36

Наразі я створював нову гілку щоразу, коли мені доводилося додавати нову функцію у свою програму.

Коли моя функція закінчена і функціональна, я зливаю її з основною гілкою.

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

Наприклад, у мене є гілка під назвою modeling-member у додатку Ruby on Rails. Пізніше мені потрібно додати деякі атрибути до моделі-члена (яка була створена в цій гілці). Що я повинен зробити? Пов’язати цю гілку з головним, оновити модель і знову об'єднати її або просто створити нову гілку?


1
Якщо ваш проект стає дуже масштабним, повторне використання старих гілок вимагатиме багато часу для перемикання та / або оновлення git. Порівняно з кількома секундами, що потрібні для створення нової гілки.
Реакційний

Відповіді:


34

Створіть нову гілку, оскільки:

  • Зовсім нова гілка має меншу ймовірність виникнення конфліктів злиття, коли ви закінчите і хочете об'єднати її в головний. Небагато речей більш схильні до помилок, ніж виправлення конфліктів злиття.

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

  • Якщо тільки для простоти, зазвичай корисно мати однаковий робочий процес для оновлень, виправлень помилок та нових функцій. Це стосується розгалуження, перегляду коду, використання трекера помилок та майже всього іншого. Різниця між оновленням існуючої функції, додаванням нової функції та виправленням помилки часто все одно суб'єктивна.


7

Використовуйте нову гілку.

Для іменування ви можете скористатися внутрішнім форматом, що this_work є розширенням або зміною на that_work

Наприклад, ви можете назвати другу гілку

modeling-member--attributes

з - сигналізуючи про те, що назва ліворуч є початковою гілкою

Ми вирішуємо дещо подібну проблему, оскільки використовуємо номери квитків Jira для імен філій. Іноді для того ж квитка є додаткова робота. Іноді зміна бази даних не може бути повернута назад. У таких випадках ми, наприклад, використовуємо оригінальну гілку SEND-123, а другу гілку - SEND-123a


0

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

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


4
"u" - це не англійське слово. Такі текстові розмови повинні бути зарезервовані для текстів та щебетання.
Gort Robot

@Steven Зараз, навіть там, коли для (більшості людей) для кожної літери більше не потрібно три-чотири натискання клавіш, цього слід уникати. :)
TZHX
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.