Menggunakan gitflow, saat membuat release-1.0.0
cabang dan menggabungkannya ke keduanya master
dan develop
, kedua cabang akan memiliki komit yang hilang:
master
tidak akan memiliki komit tempatrelease-1.0.0
penggabungandevelop
develop
tidak akan memiliki komit tempatrelease-1.0.0
penggabunganmaster
Sebagai gantinya, setelah hotfix-1.0.1
dibuat dan digabungkan ke master
, ketika sedang digabungkan ke develop
, komitmen untuk menggabungkan akan mencakup komit sebelumnya di mana release-1.0.0
digabungkan ke master
; jadi akan terlihat seperti ini:
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
Jika ini terdengar membingungkan, Anda dapat dengan mudah melihat setiap orang yang Anda lihat develop
biasanya adalah beberapa komitmen di belakang master
(meskipun berkembang, secara teoritis, seharusnya hanya berada di depan karena itu adalah cabang utama. Komit-komit itu digabung dari release-x.x.x
ke master
).
Bagaimana ini harus ditangani untuk menjaga sejarah yang bersih?
Jawaban:
Saya pikir pendekatan yang baik adalah untuk menghindari memiliki dua cabang "utama", menguasai dan mengembangkan agak berlebihan. Dijelaskan secara menyeluruh di sini , dicap
cactus-flow
oleh penulis.Beberapa poin menonjol sebagai lawan git-flow:
Bagi saya yang terakhir adalah penting, karena setelah menggunakan git-flow untuk waktu yang lama saya belum melihat apa yang berguna tentang
--no-ff
penggabungan.IMHO itu kesalahan besar Anda. Tidak ada alasan bagi Anda untuk tetap menggunakan git-flow sebanyak mungkin. Ini dapat digunakan dalam ribuan proyek tetapi itu tidak mempengaruhi proyek Anda, tidak membuatnya bagus.
Git-flow adalah titik awal yang baik tetapi Anda harus berpikir tentang mengadaptasinya ke alat dan alur kerja Anda dan bukan sebaliknya.
sumber