Mempertahankan riwayat git yang bersih saat menggunakan gitflow - komitmen tanpa komitmen dikembangkan

9

Menggunakan gitflow, saat membuat release-1.0.0cabang dan menggabungkannya ke keduanya masterdan develop, kedua cabang akan memiliki komit yang hilang:

  • mastertidak akan memiliki komit tempat release-1.0.0penggabungandevelop
  • developtidak akan memiliki komit tempat release-1.0.0penggabunganmaster

Sebagai gantinya, setelah hotfix-1.0.1dibuat dan digabungkan ke master, ketika sedang digabungkan ke develop, komitmen untuk menggabungkan akan mencakup komit sebelumnya di mana release-1.0.0digabungkan 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 developbiasanya 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.xke master).

Bagaimana ini harus ditangani untuk menjaga sejarah yang bersih?

Christopher Francisco
sumber
Silakan tentukan "riwayat bersih".
Jace Browning
3
Ingin sejarah yang bersih? Jangan gunakan gitflow. Itu menurut definisi mencemari sejarah Anda. Alih-alih, pikirkan apa yang benar-benar Anda butuhkan dan buat alur kerja di sekitarnya, jadi itu benar-benar cocok dengan cara Anda ingin bekerja.
FP
1
Penggabungan yang akan dikuasai akan menjadi "salinan", tidak perlu digabungkan untuk berkembang. Buat perbaikan panas dari cabang rilis sebelumnya, bukan master, dan gabungkan keduanya dari sana, dan Anda tidak akan mendapatkan masalah. Master tidak menambahkan banyak ke model sehingga Anda benar-benar dapat menjatuhkannya sepenuhnya, IMO.
axl
@axl Saya mengerti maksud Anda, tapi saya mencoba mengikuti gitflow sedekat mungkin dengan dokumentasinya. Saya lebih suka tidak melakukan "hackz" apa pun karena gitflow sudah diadopsi oleh banyak pengembang, mereka seharusnya sudah memiliki solusi untuk hal sederhana ini
Christopher Francisco
Ada beberapa diskusi tentang bagaimana menyelesaikan berbagai masalah dengan GitFlow di GitHub dan tempat-tempat lain. Terkadang tidak ada peluru perak.
axl

Jawaban:

4

Saya pikir pendekatan yang baik adalah untuk menghindari memiliki dua cabang "utama", menguasai dan mengembangkan agak berlebihan. Dijelaskan secara menyeluruh di sini , dicap cactus-flowoleh penulis.

Beberapa poin menonjol sebagai lawan git-flow:

  • Hanya satu cabang utama
  • Hanya penggabungan maju cepat

Bagi saya yang terakhir adalah penting, karena setelah menggunakan git-flow untuk waktu yang lama saya belum melihat apa yang berguna tentang --no-ffpenggabungan.

Saya mencoba mengikuti gitflow sedekat mungkin dengan dokumentasinya. Saya lebih suka tidak melakukan "hackz" apa pun karena gitflow sudah diadopsi oleh banyak pengembang, mereka seharusnya sudah memiliki solusi untuk hal sederhana ini

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.

Sergio Basurco
sumber