Apakah lebih baik memulai Permintaan Tarik atau melakukan komit gabungan lokal pada master?

12

Saya telah menggunakan GitHub untuk beberapa waktu sekarang dan saya biasanya mendorong cabang-cabang fitur saya dan kemudian memulai Permintaan Tarik yang saya gabungkan sendiri. Saya menemukan itu membantu saya melacak di mana saya menggabungkan cabang.

Tetapi baru-baru ini saya telah membaca semakin banyak tentang bagaimana Git bekerja dan saya menyadari bahwa saya dapat menggunakan komit gabungan untuk merujuk ketika saya menggabungkan cabang.

Jadi, apa yang harus saya lakukan ketika menggabungkan cabang-fitur ke master:
Melakukan komit gabungan pada master dan kemudian mendorongnya ke atas ATAU Tekan cabang lokal dan memulai Permintaan Tarik?

Saya telah membaca Memperkenalkan Permintaan Tarik untuk tim 2 orang - menggabungkan permintaan saya sendiri? dan Whats alur kerja dengan 2 orang di proyek dan Haruskah saya membuka permintaan tarik dari cabang di repo resmi atau garpu saya? tapi sepertinya tidak ada yang menjawab apa yang saya cari.

Ashhar Hasan
sumber
2
Apa yang sebenarnya Anda rasakan kurang dari jawaban itu?
RubberDuck
Yang pertama membicarakannya dari pengertian bahwa permintaan tarik dimaksudkan untuk ditinjau sejawat. Yang kedua menawarkan alur kerja. Yang ketiga bahkan tidak berhubungan.
Ashhar Hasan
1
Saya melihat ini dari Praktik Terbaik atau Cara mempertahankan sudut pandang sejarah git yang baik .
Ashhar Hasan
1
Ketika saya menggabungkan PR, saya melakukannya dengan menggabungkan cabang secara lokal. Ini memungkinkan saya untuk memastikan penggabungan diterapkan dengan benar, dan untuk menjalankan kembali pengujian sebelum menerbitkan hasilnya. Permintaan Tarik GitHub hanyalah formalisasi dari alur kerja ini, Git sendiri tidak memiliki konsep PR.
amon
2
Ketika PR digabungkan, ia menghasilkan gabungan komit, jadi saya tidak berpikir ini ada bedanya dengan sejarah git. Jadi saya tidak berpikir ada alasan untuk menggunakan satu atau yang lain selain dari preferensi pribadi Anda antara baris perintah dan UI Github.
Ixrec

Jawaban:

15

mekanisme git-merge:
Menggunakan git merge featuresaat di master menggabungkan cabang featureke masterdan menghasilkan a merge-commit(jika cabang tidak dapat diteruskan dengan cepat) dalam sejarah git. Untuk memaksa merge-commitdibuat, gunakan --no-ffopsi dengan merge.

Mekanisme Permintaan Tarik Gabung:
Ketika kami memulai Permintaan Tarik di GitHub, itu menciptakan GitHub Issuetempat orang dapat berbicara dan mendiskusikan komitmen dalam PR sebelum menggabungkannya. Ketika PR digabungkan pada GitHub, ia melakukan hal yang persis sama git merge feature.

Apa yang harus saya lakukan?
Jadi, sejauh menyangkut sejarah, tidak ada perbedaan di antara keduanya.
Dan sejauh kontribusi berjalan, kontributor Anda tidak perlu melakukan sesuatu yang berbeda untuk kedua situasi tersebut. Mereka sama (minus obrolan kecil yang menyenangkan).

Praktik Terbaik:
Dan saya tidak dapat menemukan praktik terbaik tetapi logika mengatakan bahwa PR tidak banyak membantu jika hanya ada satu orang di repositori.

@ lxrec dan @amon membantu saya mencapai kesimpulan ini.

Ashhar Hasan
sumber
5
Kiat: git mergemungkin tidak merekam komit gabungan jika ia bisa melakukan "fast forward". Untuk memaksa komit gabungan, Anda bisa menambahkan --no-ffopsi.
amon
Saya lebih suka melakukan git-merge di lokal daripada melakukannya di githuib.com, jika saya harus melakukan hal seperti itu di github.com saya lebih suka untuk tidak melakukan langsung pada cabang master, saya lebih suka mengambil cabang non-master yang bisa pertama kali diatur pada mode pementasan sebelum membuatnya tersedia untuk produksi.
Ciasto piekarz
5

Seperti yang dikatakan Ashhar , secara teknis dan sejarah tidak ada bedanya. Untuk proyek dengan tim kecil, saya lebih suka menggabungkan langsung daripada langkah ekstra membuat PR. Namun, ketika suatu fitur membutuhkan ulasan / umpan balik atau ketika itu WIP dan lebih dari satu orang akan mengerjakannya, saya cenderung untuk membuka PR dan menambahkan daftar tugas ke deskripsi PR.

Perhatikan bahwa git mergemungkin menggunakan fast-forward jika tidak ada perubahan untuk dikuasai, jadi Anda mungkin ingin menggunakannya git merge --no-ff. Saya cenderung tidak.

Jadi secara ringkas, hanya gunakan PR ketika Anda membutuhkan diskusi. Kalau tidak, hanya bergabung secara langsung.

Louay Alakkad
sumber
1
Perlu juga disebutkan bahwa diskusi dan umpan balik tentang permintaan tarik dapat berasal dari sumber otomatis maupun anggota tim. Jika Anda memiliki pengaturan server CI, itu dapat memberikan hasil uji dan pembangunan sehingga Anda tidak pernah menggabungkan sesuatu yang merusak build pada master.
Eric