Зберігання чистої історії git при використанні gitflow - неперевірених зобов’язань на розробці


9

Використовуючи gitflow, створюючи release-1.0.0гілку та об’єднуючи її в обидві, masterі developобидві гілки матимуть відсутність комітету:

  • masterне будемо робити комітети, куди release-1.0.0було злитоdevelop
  • developне будемо робити комітети, куди release-1.0.0було злитоmaster

Натомість після того, як hotfix-1.0.1створено та об'єднано master, коли воно об'єднане develop, зобов’язання до об'єднання включатимуть попереднє зобов’язання, у яке release-1.0.0було об'єднано master; тому це буде виглядати приблизно так:

User 'john doe' is trying to merge the following commits into 'develop' from 'hotfix-1.1.1'.

* merge release-1.0.0 to master
* merge release-1.1.0 to master
* Fix shopping cart critical bug

Якщо це звучить дивно, ви можете легко помітити це everytie ви бачите develop, як правило , кілька фіксацій позаду master(хоча і розвиватися, теоретично, повинен тільки бути попереду , так як це основна галузь. Ці фіксацій є зливається з release-x.x.xдо master).

Як це слід вирішувати для підтримки чистої історії?


Будь ласка, визначте "чисту історію".
— Джейс Браунінг

3
Хочете чистої історії? Не використовуйте gitflow. Це за визначенням забруднює вашу історію. Натомість подумайте, що вам справді потрібно, і побудуйте навколо цього робочий процес, щоб він насправді відповідав тому, як ви хочете працювати.
— FP

1
Злиття в головне буде "копією", не потрібно об'єднувати її для розвитку. Зробіть гарячі виправлення з попередньої гілки випуску, а не майстер, і з’єднайтеся з обома звідти, і у вас не виникне проблеми. Майстер не додає великої кількості моделі, так що ви можете фактично її повністю відкинути, IMO.
— axl

@axl Я розумію, що ви маєте на увазі, але я намагаюся дотримуватися gitflow якомога ближче до його документації. Я б краще не робив жодного "хакза", оскільки оскільки gitflow вже прийнято багатьма багатьма розробниками, вони повинні вже мати рішення для цієї простої речі
— Крістофер Франсиско

Існує кілька дискусій про те, як вирішити різні проблеми з GitFlow на GitHub та інших місцях. Іноді просто немає срібної кулі.
— axl

Відповіді:


4

Я думаю, що хороший підхід полягає у тому, щоб уникнути наявності двох "головних" галузей, освоювати та розвиватись є надлишковими. Це пояснюється ретельно тут , затаврували cactus-flowавтором.

Деякі моменти виділяються на відміну від git-flow:

  • Лише одна головна галузь
  • Зливаються лише швидкі вперед

Для мене останній важливий, оскільки після тривалого використання git-flow я ще не бачу, що корисне для --no-ffзлиття.

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

ІМХО, це ваша велика помилка. У вас немає жодної причини, щоб ви дотримувались git-flow якомога більше. Він може використовуватися в тисячах проектів, але це не впливає на ваш, не приносить користі.

Git-flow - це хороша відправна точка, але слід подумати про те, щоб адаптувати його до своїх інструментів та робочого процесу, а не навпаки.

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