Tautkan ke nomor masalah di GitHub dalam pesan komit

Jawaban:

954

Cukup sertakan #xxxdalam pesan komit Anda untuk referensi masalah tanpa menutupnya.

Dengan masalah GitHub 2.0 baru Anda dapat menggunakan sinonim ini untuk referensi masalah dan menutupnya (dalam pesan komit Anda):

  • fix #xxx
  • fixes #xxx
  • fixed #xxx
  • close #xxx
  • closes #xxx
  • closed #xxx
  • resolve #xxx
  • resolves #xxx
  • resolved #xxx

Anda juga dapat menggantinya #xxxdengan gh-xxx.

Merujuk dan menutup masalah di seluruh repo juga berfungsi:

fixes user/repo#xxx

Lihat dokumentasi yang tersedia di bagian Bantuan mereka.

NARKOZ
sumber
4
Fix issue #xxxtidak bekerja untuk saya, ada ide? Itu referensi masalah, tetapi tidak menutupnya.
Dennis
16
@Dennis menghapus kata "issue"
1
@ JamesTomasino itu mungkin - saya perhatikan bahwa ini belum berfungsi untuk saya ketika saya sedang mengerjakan cabang yang dipanggil dev.
Jon Cairns
1
Dalam situasi apa masing-masing akan digunakan?
nilsi
1
Saya tidak akan menjadi orang yang memindahkan jawaban ini dari 666 suara ke 667, tapi ini SANGAT membantu.
jakeatwork
168

Jika Anda ingin menautkan ke masalah GitHub dan menutup masalah ini, Anda bisa memberikan baris berikut dalam pesan komit Git Anda:

Closes #1.
Closes GH-1.
Closes gh-1.

(Salah satu dari ketiganya akan berfungsi.) Perhatikan bahwa ini akan terhubung ke masalah dan juga menutupnya . Anda dapat menemukan lebih banyak di posting blog ini (mulai menonton video tertanam sekitar 1:40).

Saya tidak yakin apakah sintaksis yang serupa hanya akan menautkan ke masalah tanpa menutupnya.

mipadi
sumber
31
Anda cukup menggunakan nomor masalah (misalnya # 456) yang akan ditautkan ke tugas tanpa menutupnya.
Matthieu Napoli
9
Saya akan memilih "gh-1" daripada "# 1" hanya karena Anda tidak pernah tahu apakah repositori diekspor / dicerminkan ke tempat lain selain github. Kemudian, "# 1" tidak masuk akal.
huyz
2
@mipadi: apakah ."Tutup GH-1` setelahnya? Selain itu, peka terhadap huruf besar-kecil?
Lekensteyn
1
@Lekensteyn: Saya tidak percaya periode itu diperlukan. Tidak yakin tentang sensitivitas huruf besar-kecil.
mipadi
message (closes GH-28)bekerja untuk saya, tidak yakin apakah semuanya case-insensitive.
Lekensteyn
64

Anda juga dapat melewati repo referensi:

githubuser/repository#xxx

xxx menjadi nomor masalah

narkeeso
sumber
62

github menambahkan referensi ke komit jika mengandung #issuenbr (ditemukan secara kebetulan).

Henrik Lindberg
sumber
4
baru saja mengujinya, berfungsi seperti pesona, terima kasih ... ini adalah salah satu yang harus ditandai sebagai jawaban yang benar ...
opensas
14

mereka memiliki tulisan yang bagus tentang isu-isu baru 2.0 di blog mereka https://github.blog/2011-04-09-issues-2-0-the-next-generation/

sinonim termasuk

  • memperbaiki #xxx
  • memperbaiki #xxx
  • perbaiki #xxx
  • menutup #xxx
  • tutup #xxx
  • ditutup #xxx

menggunakan salah satu kata kunci dalam pesan komit akan membuat komit Anda disebutkan atau menutup masalah.

xero
sumber
Itu sudah ada dalam daftar saya, saya tidak berpikir mereka peka terhadap huruf besar-kecil.
xero
4

Sama seperti tambahan untuk jawaban lain: Jika Anda bahkan tidak ingin menulis pesan komit dengan nomor terbitan dan kebetulan menggunakan Eclipse untuk pengembangan, maka Anda dapat menginstal plugin eGit dan Mylyn serta konektor GitHub untuk Mylyn. Eclipse kemudian dapat secara otomatis melacak masalah yang sedang Anda kerjakan dan secara otomatis mengisi pesan komit , termasuk nomor masalah seperti yang ditunjukkan dalam semua jawaban lainnya.

Untuk detail lebih lanjut tentang pengaturan itu, lihat http://wiki.eclipse.org/EGit/GitHub/UserGuide

Bananeweizen
sumber
4

Untuk menautkan nomor masalah ke pesan komit Anda, Anda harus menambahkan: #issue_numberdi pesan komit git Anda.

Contoh Pesan Komit dari Panduan Gaya Pesan Komit Udacity Git

feat: Summarize changes in around 50 characters or less

More detailed explanatory text, if necessary. Wrap it to about 72
characters or so. In some contexts, the first line is treated as the
subject of the commit and the rest of the text as the body. The
blank line separating the summary from the body is critical (unless
you omit the body entirely); various tools like `log`, `shortlog`
and `rebase` can get confused if you run the two together.

Explain the problem that this commit is solving. Focus on why you
are making this change as opposed to how (the code explains that).
Are there side effects or other unintuitive consequenses of this
change? Here's the place to explain them.

Further paragraphs come after blank lines.

 - Bullet points are okay, too

 - Typically a hyphen or asterisk is used for the bullet, preceded
   by a single space, with blank lines in between, but conventions
   vary here

If you use an issue tracker, put references to them at the bottom,
like this:

Resolves: #123
See also: #456, #789

Anda juga dapat merujuk repositori:

githubuser/repository#issue_number
Suhas Srivats Subburathinam
sumber
Tidak masuk akal (dan benar-benar mengganggu saya) bahwa mereka menggunakan "feat" sebagai singkatan untuk "fitur", terutama ketika pada saat yang sama mereka menggunakan "refactor" yang bahkan lebih lama dari "fitur".
Michel Jung
@MichelJung Anda bisa berpendapat bahwa featini lebih sering digunakan daripada refactor, juga tidak ada singkatan yang jelas untuk refactor( refbisa berarti referensi, rfterlalu jelas, dll.).
Chris Kraszewski
3

Salah satu proyek pertama saya sebagai programmer adalah permata bernama stagecoach yang (antara lain) memungkinkan penambahan otomatis nomor masalah github ke setiap pesan commit di cabang, yang merupakan bagian dari pertanyaan yang belum benar-benar dijawab .

Pada dasarnya ketika membuat cabang Anda akan menggunakan perintah khusus (seperti stagecoach -b <branch_name> -g <issue_number>), dan nomor masalah kemudian akan ditugaskan ke cabang itu dalam file yml. Kemudian ada kait komit yang menambahkan nomor masalah ke pesan komit secara otomatis.

Saya tidak akan merekomendasikannya untuk penggunaan produksi karena pada saat itu saya hanya pemrograman selama beberapa bulan dan saya tidak lagi mempertahankannya, tetapi mungkin menarik bagi seseorang.

omnikron
sumber
Saya pikir jawaban Anda mencoba menjawab pertanyaan persis dari OP, yaitu "cara untuk secara otomatis memiliki tautan ke masalah yang ditambahkan dalam komit". Semua jawaban lain bergantung pada pemrogram mengingat untuk menambahkan "Perbaikan # ..., Diselesaikan # ... dll" frase untuk komit dan ini tidak akan terjadi setiap kali seperti yang kita kenal. Upvoting.
demisx