การปิดปัญหาต่างๆใน Github ด้วยข้อความคอมมิต


112

ฉันรู้ว่าคุณสามารถปิดปัญหาได้โดยการใส่closes #1หรือfixes #1ในข้อความคอมมิต วิธีใดเป็นวิธีที่ดีที่สุดในการปิดปัญหาหลายประเด็นในข้อความคอมมิตเดียวกัน

นอกจากนี้ดูเหมือนว่าการใช้fixesแทนที่จะclosesไม่สร้างลิงก์จากข้อความยืนยันไปยังปัญหา แต่จะปิดปัญหา มันคืออะไร?


คำตอบ:


160

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

closesคำสั่งได้ทุกที่ในข้อความและfixesเป็นคำพ้องความหมายที่ถูกต้อง:

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

สิ่งต่อไปนี้ใช้ในการทำงาน แต่ปัจจุบันอ้างอิงเฉพาะประเด็น # 2 และ # 3

Closes #1, #2, #3


1
ดูเหมือนว่าจะไม่ได้ผลสำหรับฉัน แต่จะปิดรายการแรกในรายการเท่านั้นไม่ใช่รายการอื่น ๆ ไวยากรณ์มีการเปลี่ยนแปลงตั้งแต่โพสต์นี้หรือไม่? ฉันได้ใช้ Google แล้ว แต่ดูเหมือนจะไม่ได้รับความช่วยเหลือมากนักเกี่ยวกับเรื่องนี้
Mark Bell

1
เห็นด้วย แก้ไข # 1, # 2 ทำงานเพื่ออ้างอิงทั้งสอง ... แต่ปิดเฉพาะ # 1
waldo

@waldo ฉันคิดว่ามันใช้ได้ผลเมื่อฉันเขียนมัน - ตอนนี้แล้วเป็นไงCloses #1, closes #2, closes #3ล่ะ? Verbose และซ้ำซ้อนใช่ แต่อาจใช้งานได้?
Jakob Borg

ใช่ "แก้ไข # 1 - แก้ไข # 2 - ส่งข้อความจริง" ใช้งานได้และสมเหตุสมผล (ถ้าเป็นแบบละเอียด) - กล่าวคือฉันปิดและอ้างถึง (โดยไม่ปิด) ปัญหาที่แตกต่างกันหลายประเด็นจากข้อความคอมมิตเดียว
waldo

2
มีความคิดว่าทำไมพวกเขาถึงเปลี่ยนพฤติกรรมCloses #1, #2, #3? ฉันคิดว่ามันไร้สาระที่จะเขียน 10 closesบวกตัวเลขของประเด็นที่จะปิดแทนที่จะเป็นค่าปิดเดียวและตัวเลขทั้งหมดหลังจากนั้น : - /
rbaleksandar

38

คำตอบและความคิดเห็นสำหรับคำตอบนั้นกล่าวถึงรูปแบบต่อไปนี้:

ปิด # 1 ปิด # 2 ปิด # 3; ข้อความยืนยันจริง

หากฉันมีโครงการที่ควรค่าแก่การเข้าร่วมและมีคนส่งคำขอดึงพร้อมข้อความแสดงความรับผิดชอบดังกล่าวฉันจะปฏิเสธการดึงไม่ว่ารหัสจะสวยงามแค่ไหนก็ตาม

เป็นไปได้ว่านี่เป็นเพียงเรื่องของความชอบส่วนตัวของฉันและจะจบลงด้วยการพ่ายแพ้โดยผู้คนที่ใช้คอมมิชชันข้อความที่ยุ่งเหยิงสรุปประวัติ Git แต่ฉันค่อนข้างจะเห็นข้อความที่มีรูปแบบ:

สรุปการเปลี่ยนแปลงที่เกิดขึ้น

แก้ไขข้อบกพร่องดังต่อไปนี้:
* ตัวโหลดข้อผิดพลาดที่แก้ไขแก้ไข # 1
* ส่งคืนตัวชี้ที่ไม่ใช่สถานะแก้ไข # 2
* ใช้กราฟิกใหม่กับองค์ประกอบ gui ปิด # 3

เขาขอวิธีที่ดีที่สุดในการปิดประเด็นต่างๆ

โปรดทราบว่าหากคุณพุชการคอมมิตพร้อมข้อความไปยังสาขาอื่นที่ไม่ใช่สาขาเริ่มต้นปัจจุบันของที่เก็บของคุณปัญหาจะถูกอ้างถึงเท่านั้น การผลักภาระไปยังสาขาหลักจะเป็นการปิดประเด็น ดู: ลิงก์ไปยังหมายเลขปัญหา GitHub ไม่ทำงานหรือไม่


เพิ่งลองในแบบของคุณ ฉันต้องพูดตรงๆฉันชอบสิ่งนี้มาก!
Billy Coover

9

โปรดทราบว่าตั้งแต่เดือนมกราคม 2013 "การปิดปัญหาผ่าน Commit Messages" มีการเปลี่ยนแปลง:

ตอนนี้เมื่อคุณป้อน " Fixes #33" ในการกระทำข้อความปัญหา 33 จะถูกปิดทันทีที่กระทำจะถูกรวมเข้าไปในสาขาเริ่มต้นของคุณ (ปกติmaster )

สิ่งนี้มีประโยชน์มากเพราะหมายความว่าสถานะเปิด / ปิดของปัญหาจะจับคู่กับสาขาเริ่มต้นของคุณ
หากไม่ได้รับการแก้ไขข้อบกพร่องในสาขาเริ่มต้นของคุณปัญหาจะยังคงเปิดอยู่
เมื่อรวมการกระทำกับการแก้ไขเข้ากับสาขาเริ่มต้นของคุณปัญหาจะถูกปิดโดยอัตโนมัติ

คุณสามารถใช้คำหลักเหล่านี้เพื่อปิดปัญหาผ่านข้อความคอมมิต:

close, closes, closed, fixes, fixed

ตามภาพประกอบของคำถาม "การปิดปัญหา GitHub ขณะอยู่ในสาขาอื่น " สิ่งนี้ทำให้เกิดความสับสนในตอนแรก


1

"การปิดปัญหาโดยใช้คีย์เวิร์ด"เป็นเอกสารจาก GitHub ที่อธิบายถึงวิธีการปิดปัญหาแท็กและวิธีปิดปัญหาหลาย ๆ

เพื่อตอบคำถามของคุณคำตอบจาก GitHub คือ:

การปิดหลายประเด็น

หากต้องการปิดหลายประเด็นให้นำหน้าการอ้างอิงแต่ละปัญหาด้วยคำหลักคำใดคำหนึ่งข้างต้น คุณต้องใช้คำหลักก่อนแต่ละปัญหาที่คุณอ้างอิงเพื่อให้คำหลักทำงาน

ตัวอย่างเช่นสิ่งนี้ปิด # 34 ปิด # 23 และการปิด example_user / example_repo # 42 จะปิดปัญหา # 34 และ # 23 ในที่เก็บเดียวกันและปัญหา # 42 ในที่เก็บ "example_user / example_repo"


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.