Apakah ada tujuan untuk menggunakan permintaan tarik pada repo saya sendiri jika saya satu-satunya pengembang?

38

Jadi saya mulai dengan proyek nyata saya di GitHub dan semuanya berjalan cukup baik dan ide-ide mengalir jauh lebih cepat daripada yang saya pikirkan. Agar semuanya tetap teratur, saya mengatur beberapa cabang agar saya dapat mengembangkan fitur yang berbeda secara terpisah.

Sekarang ketika saya mendorong cabang saya ke GitHub, saya memiliki bagian di mana saya memiliki dua tombol: Pull Requestdan Comparedengan nama cabang yang baru-baru ini saya dorong. Saya mengerti tujuan Comparetombol tetapi saya tidak mengerti mengapa saya ingin membuat permintaan tarik pada repo saya sendiri.

Adakah yang bisa menjelaskan mengapa saya melakukan itu? Apakah berguna untuk membuat permintaan tarik pada repo saya sendiri jika saya satu-satunya pengembang?

marco-fiset
sumber

Jawaban:

28

Bagi banyak (mungkin sebagian besar) pengembang individu yang bekerja sendiri, membuat permintaan tarik mungkin tidak bermanfaat. Namun, saya dapat memikirkan setidaknya satu alasan potensial untuk melakukannya:

Permintaan tarik dapat digunakan untuk melacak riwayat proyek Anda dengan lebih mudah. Permintaan penarikan memiliki ID masalah yang dapat dirujuk dari pesan komit dan dalam log perubahan, yang memungkinkan Anda untuk dengan mudah kembali dan menemukan titik gabungan dan set komit gabungan untuk perubahan tertentu, tanpa harus mempertahankan fitur Anda cabang tanpa batas.

Misalnya, di Pioneer (plug shameless), ketika kami menggabungkan permintaan tarik, kami menambahkan item ke changelog , dengan deskripsi perubahan satu baris dan referensi ke ID permintaan tarik. Tentu saja, Pioneer memiliki beberapa pengembang, tetapi mekanisme yang sama dapat berguna bagi pengembang yang bekerja sendiri.

Ini mungkin kurang berguna jika Anda memutuskan untuk tetap menggunakan riwayat komit linear (dengan memunculkan kembali cabang fitur Anda sebelum penggabungan, sehingga penggabungan dapat selalu dilakukan sebagai fast-forward), dan jika Anda sangat disiplin dalam mengedit dan memencet Anda berkomitmen sebelum bergabung untuk dikuasai, karena dalam hal itu pesan komit individu dapat digunakan sebagai changelog dalam diri mereka sendiri.

John Bartholomew
sumber
10

Permintaan tarik dibuat sehingga seseorang dapat meninjau pekerjaan, membuat komentar, saran, membuat atau meminta suntingan dan kemudian menggabungkan kode untuk dikuasai.

Dalam kasus Anda seseorang itu adalah Anda.

Sebagai satu-satunya pengembang Anda masih harus meninjau pekerjaan Anda sendiri, refactor dan menggabungkannya untuk dikuasai ketika siap.

Salah satu pendekatan yang sering saya gunakan adalah mencoba 'memakai topi lain', 'coba kepribadian lain'. Jadi duduk sebentar dan tempatkan diri Anda dalam situasi: pemula untuk grup; pengembang junior; kolega yang Anda hormati di masa lalu, dll. Coba dan lihat melalui mata mereka dan coba pikirkan apa yang bisa Anda lakukan untuk membuat perubahan lebih jelas, lebih baik ditulis dengan nama yang lebih baik yang menghindari pengetahuan suku dan domain sebanyak mungkin .

Jadi, seperti yang Anda tunjukkan, Anda harus bekerja di cabang ketika Anda ingin memisahkan fitur dan perubahan yang tidak siap untuk master. Anda dapat melakukan semua itu di cabang (Anda bahkan tidak perlu menarik permintaan untuk mengelolanya jika Anda tetap melakukan tugas PR, tetapi mungkin memberikan struktur yang berguna bagi Anda).

Juga, kadang-kadang saya akan menemukan bahwa perubahan saya tidak berfungsi, tetapi alih-alih kengerian mencoba untuk mundur dari master, mungkin sekarang dicampur dengan perubahan master lainnya, saya hanya bisa melakukan semuanya di cabang yang kemudian dapat saya abaikan / hapus jika mulai salah. Ini adalah manfaat yang sangat besar.

Jadi, Anda harus bekerja di cabang dan tidak berkomitmen langsung untuk menguasai sampai Anda memutuskan untuk menggabungkan seluruh cabang.

Ini adalah pedoman - dan bukan aturan - untuk diikuti. Terkadang saya sengaja mematahkannya. Misalnya, kemarin saya melakukan perbaikan kesalahan ketik untuk dikuasai.

Michael Durrant
sumber
3

Sepertinya Anda memiliki cabang jarak jauh serta cabang lokal. Jika Anda menemukan overhead alur kerja terlalu banyak, maka Anda selalu dapat bekerja pada fitur yang berbeda menggunakan cabang lokal tanpa mendorongnya.

Ini pada dasarnya adalah melakukan apa yang cocok untuk Anda. Bekerja dengan cabang adalah keuntungan besar bagi git, dan github membuatnya sangat mudah, tetapi sebagai pengembang mandiri tidak perlu menggunakan model permintaan tarik dan berkomitmen langsung untuk menguasai harus bekerja dengan baik. Ketika proyek Anda pada akhirnya menjadi sangat sukses dan puluhan atau ratusan pengembang mengerjakannya, Anda akan mendapati mendapatkan permintaan tarik dari garpu mereka adalah cara yang bagus untuk melacak proyek.

dma
sumber
Saya sengaja mendorong cabang saya ke github saat saya bekerja dari banyak komputer dan saya ingin semua kode saya disinkronkan di antara mereka. Apakah mengetahui hal itu mengubah sesuatu pada jawaban Anda?
marco-fiset
@ marco-fiset seharusnya tidak mengubah jawabannya. Saya bahkan tidak yakin tombol tarik mana yang Anda maksud ..
David Cowden
3
Anda mengatakan "sebagai pengembang tunggal tidak ada kebutuhan besar untuk menggunakan model permintaan tarik dan berkomitmen langsung untuk menguasai harus bekerja dengan baik". Tetapi tidak menggunakan permintaan tarik bukan berarti tidak menggunakan cabang.
Rob N
0

Permintaan tarikan biasanya akan digunakan untuk ulasan kode atau kontribusi dari pengguna dengan garpu proyek mereka sendiri - untuk satu pengembang pada proyek saya tidak benar-benar melihat tujuan.

sevenseacat
sumber
0

Alasan saya melakukannya, adalah bahwa ini adalah cara yang mudah untuk memastikan bahwa semua pemeriksaan otomatis lulus (kompilasi, ia memiliki format yang benar, tes unit lulus ...).

Saya tidak perlu mewajibkan semua cek lulus untuk setiap komit, tetapi saya ingin kepala cabang utama selalu lulus cek. Saya pikir permintaan tarik adalah cara yang mudah (mungkin bukan satu-satunya).

Secara umum, ini adalah cara untuk menghubungkan kait untuk menyelesaikan perubahan. Tes adalah contoh; @ John menyebutkan membuat catatan rilis sebagai contoh lain.

Menandai
sumber
-2

Permintaan tarik vs dorongan git akhirnya turun ke salah satu riwayat individu atau bersama. Repositori utama adalah sumber untuk semua perubahan, jika orang lain menarik dari dan berpotensi membuat perubahan lokal, maka permintaan push dapat menyebabkan masalah pengguna tersebut sebagai pohon mereka berasal dari perubahan.

Model permintaan tarik (baik dari cabang kustom atau repositori pribadi) berfungsi sebagai cara untuk memberikan riwayat yang konsisten untuk semua yang menggunakan dan berasal dari kode.

Sebagian alasan Anda meletakkan kode pada github adalah membuat kode tersedia untuk forking, dan menarik permintaan. Anda tidak pernah tahu kapan itu akan terjadi, dan menjaga sejarah co-developer Anda konsisten akan menjadi nilai tambah yang besar.

Matthew Tippett
sumber
ini sepertinya hanya mengulangi poin-poin yang dibuat dan dijelaskan sebelumnya di jawaban atas
nyamuk
1
Saya tidak setuju. Sementara jawaban teratas adalah berbicara terutama tentang repositori tunggal vs bersama, diskusi tentang tarikan lebih difokuskan pada berbagi prosedural dan informasi. Maksud saya adalah menjaga sejarah yang konsisten. Lihat movingfast.io/articles/git-force-pushing untuk informasi lebih lanjut. Jika seseorang menggunakan garpu atau klon master dan Anda menulis ulang sejarah, orang tua yang mereka referensikan dapat menghilang.
Matthew Tippett