Menutup beberapa masalah di Github dengan pesan komit

112

Saya tahu Anda dapat menutup masalah dengan meletakkan closes #1atau fixes #1dalam pesan komit. Apa cara terbaik untuk menutup beberapa masalah dalam pesan commit yang sama?

Juga, tampak bahwa menggunakan fixesdaripada closestidak membuat link dari pesan komit untuk masalah ini, tapi tidak dekat masalah ini. Ada apa dengan itu?

Rayne
sumber

Jawaban:

160

Closes #1, closes #2, closes #3; rest of commit message.

The closesklausa dapat berada di mana saja dalam pesan dan fixesadalah sinonim valid:

This fixes a memory leak in foo() that closes #4,
also fixes #5 which is a duplicate.

Kalimat berikut dulunya berfungsi, tetapi saat ini hanya merujuk pada masalah # 2 dan # 3.

Closes #1, #2, #3

Jakob Borg
sumber
1
Ini sepertinya tidak berhasil untuk saya, ini hanya menutup item pertama dalam daftar dan bukan yang lain. Apakah sintaksnya berubah sejak posting ini? Saya telah mencarinya di Google, tetapi tampaknya tidak banyak bantuan di luar sana tentang hal ini.
Mark Bell
1
Sepakat. Perbaikan # 1, # 2 berfungsi untuk mereferensikan keduanya ... tetapi hanya menutup # 1.
waldo
@waldo Saya pikir ini berhasil ketika saya menulisnya - sekarang, bagaimana dengan Closes #1, closes #2, closes #3? Verbose dan berlebihan, ya, tapi mungkin berhasil?
Jakob Borg
Yup, "Perbaikan # 1 - Perbaikan # 2 - pesan komit aktual." bekerja dan masuk akal (jika bertele-tele) - yaitu saya dengan jelas menutup dan merujuk (tanpa menutup) beberapa masalah berbeda dari satu pesan komit.
waldo
2
Tahu mengapa mereka mengubah perilaku Closes #1, #2, #3? Saya merasa konyol untuk menulis 10 closesditambah jumlah masalah yang akan ditutup, bukan satu penutupan dan semua angka setelah itu. : - /
rbaleksandar
38

Jawaban dan komentar atas jawaban tersebut menyebutkan format berikut:

Tutup # 1, tutup # 2, tutup # 3; Pesan komit yang sebenarnya

Jika saya memiliki proyek yang layak untuk diikutsertakan dan seseorang mengirim permintaan penarikan dengan pesan komit seperti itu, saya akan menolak penarikan tidak peduli betapa indah kodenya.

Mungkin saja ini hanya masalah preferensi pribadi saya dan akan berakhir sangat parah oleh orang-orang yang terbiasa memadatkan pesan komit yang mengacaukan ringkasan riwayat Git, tetapi saya lebih suka melihat pesan komit dengan format:

Ringkasan perubahan yang dilakukan.

Memperbaiki bug berikut:
* Pemuat kesalahan yang dimodifikasi, perbaikan # 1
* Mengembalikan penunjuk nonstale, perbaikan # 2
* Menerapkan grafik baru ke elemen gui, menutup # 3

Dia meminta cara terbaik untuk menutup banyak masalah.

Juga perhatikan bahwa jika Anda mendorong komit dengan pesan ke cabang lain selain cabang default repositori Anda saat ini, masalah hanya akan direferensikan. Menekan komit ke cabang utama akan menutup masalah. Lihat: Tautan ke nomor masalah GitHub tidak berfungsi?

JNissi
sumber
Baru saja mencoba cara Anda. Saya harus jujur, saya sangat suka ini!
Billy Coover
9

Perhatikan bahwa, sejak Januari 2013 , "Menutup Masalah melalui Pesan Komit" telah berubah:

Sekarang ketika Anda memasukkan " Fixes #33" dalam pesan komit, masalah 33 hanya akan ditutup setelah komit digabungkan ke dalam cabang default Anda (biasanya master) .

Ini sangat berguna karena artinya status buka / tutup masalah akan dipetakan ke cabang default Anda.
Jika bug tidak diperbaiki di cabang default Anda, masalah akan tetap terbuka.
Setelah komit dengan perbaikan digabungkan ke cabang default Anda, masalah akan ditutup secara otomatis.

Anda dapat menggunakan salah satu kata kunci berikut untuk menutup masalah melalui pesan komit:

close, closes, closed, fixes, fixed

Seperti yang diilustrasikan oleh pertanyaan " Menutup Masalah GitHub saat berada di cabang yang berbeda ", ini menyebabkan kebingungan pada awalnya.

VonC
sumber
1

"Menutup masalah menggunakan kata kunci" adalah dokumen dari GitHub yang menjelaskan cara menutup masalah, tag, dan cara menutup beberapa masalah.

Untuk menjawab pertanyaan Anda, jawaban dari GitHub adalah:

Menutup beberapa masalah

Untuk menutup beberapa masalah, awali setiap referensi masalah dengan salah satu kata kunci di atas. Anda harus menggunakan kata kunci sebelum setiap masalah yang Anda rujuk agar kata kunci tersebut berfungsi.

Misalnya, Ini menutup # 34, menutup # 23, dan menutup example_user / example_repo # 42 akan menutup masalah # 34 dan # 23 di repositori yang sama, dan masalah # 42 di repositori "example_user / example_repo".

Vlad Bezden
sumber