Đóng nhiều vấn đề trong Github bằng thông báo cam kết


112

Tôi biết bạn có thể đóng các vấn đề bằng cách đặt closes #1hoặc fixes #1trong thông báo cam kết. Cách tốt nhất để đóng nhiều vấn đề trong cùng một thông báo cam kết là gì?

Ngoài ra, có vẻ như việc sử dụng fixesthay vì closeskhông tạo liên kết từ thông báo cam kết đến vấn đề, nhưng nó sẽ đóng vấn đề. Có chuyện gì vậy?


Câu trả lời:


160

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

Các closesmệnh đề có thể ở bất kỳ vị trí nào trong thư và fixeslà một từ đồng nghĩa hợp lệ:

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

Phần sau đã từng hoạt động, nhưng ngày nay chỉ đề cập đến các vấn đề # 2 và # 3.

Closes #1, #2, #3


1
Điều này dường như không hiệu quả với tôi, nó chỉ đóng mục đầu tiên trong danh sách chứ không phải những mục khác. Cú pháp có thay đổi kể từ bài đăng này không? Tôi đã Googled nó, nhưng dường như không có nhiều trợ giúp về điều này.
Mark Bell,

1
Đã đồng ý. Các bản sửa lỗi # 1, # 2 hoạt động để tham chiếu cả hai ... nhưng chỉ đóng lại # 1.
waldo

@waldo Tôi nghĩ điều này đã hiệu quả khi tôi viết nó - bây giờ thì thế nào Closes #1, closes #2, closes #3? Dài dòng và thừa, có, nhưng có thể nó hoạt động?
Jakob Borg

Đúng, "Bản sửa lỗi # 1 - Bản sửa lỗi # 2 - thông báo cam kết thực tế." hoạt động và có ý nghĩa (nếu dài dòng) - tức là tôi đóng và đề cập rõ ràng (không đóng) nhiều vấn đề khác nhau từ một thông báo cam kết duy nhất.
waldo

2
Bất kỳ ý tưởng tại sao họ thay đổi hành vi của Closes #1, #2, #3? Tôi thấy thật nực cười khi viết 10 closescộng với các số của các vấn đề sẽ đóng thay vì một đóng duy nhất và tất cả các số sau đó. : - /
rbaleksandar

38

Câu trả lời và nhận xét cho câu trả lời đó đề cập đến định dạng sau:

Đóng # 1, đóng # 2, đóng # 3; Thông báo cam kết thực tế

Nếu tôi có một dự án đáng tham gia và ai đó gửi yêu cầu kéo với những thông điệp cam kết như vậy, tôi sẽ từ chối việc kéo dù mã có đẹp đến đâu.

Có thể đây chỉ là vấn đề sở thích cá nhân của tôi và cuối cùng sẽ bị đánh bại bởi những người sử dụng để thu gọn các thông báo cam kết làm lộn xộn các bản tóm tắt lịch sử Git, nhưng tôi muốn xem các thông báo cam kết có định dạng:

Tóm tắt về thay đổi được thực hiện.

Đã sửa các lỗi sau:
* Trình tải lỗi đã sửa đổi, các bản sửa lỗi # 1
* Trả lại con trỏ nonstale, sửa lỗi # 2
* Áp dụng đồ họa mới cho các phần tử gui, đóng # 3

Anh ấy yêu cầu cách tốt nhất để đóng nhiều vấn đề.

Cũng lưu ý rằng nếu bạn đẩy cam kết với thông báo đến bất kỳ nhánh nào khác với nhánh mặc định hiện tại của kho lưu trữ của bạn, các vấn đề sẽ chỉ được tham chiếu. Đẩy cam kết đến nhánh chính sẽ đóng các vấn đề. Xem: Liên kết đến số sự cố GitHub không hoạt động?


Chỉ cần thử theo cách của bạn. Tôi phải thành thật mà nói, tôi thực sự thích điều này!
Billy Coover

9

Lưu ý rằng, kể từ tháng 1 năm 2013 , "Các vấn đề về kết thúc thông qua thông báo cam kết" đã thay đổi:

Bây giờ khi bạn nhập " Fixes #33" vào thông báo cam kết, vấn đề 33 sẽ chỉ bị đóng khi cam kết được hợp nhất vào nhánh mặc định của bạn (thường là master) .

Điều này rất hữu ích vì nó có nghĩa là trạng thái mở / đóng của vấn đề sẽ ánh xạ đến nhánh mặc định của bạn.
Nếu lỗi không được khắc phục trong nhánh mặc định của bạn, sự cố sẽ vẫn mở.
Khi cam kết với bản sửa lỗi được hợp nhất vào nhánh mặc định của bạn, vấn đề sẽ tự động được đóng lại.

Bạn có thể sử dụng bất kỳ từ khóa nào sau đây để giải quyết vấn đề qua thông báo cam kết:

close, closes, closed, fixes, fixed

Như được minh họa bằng câu hỏi " Đóng sự cố GitHub khi ở một chi nhánh khác ", điều này gây ra một số nhầm lẫn lúc đầu.


1

"Đóng vấn đề bằng cách sử dụng từ khóa" là tài liệu từ GitHub mô tả cách đóng vấn đề, thẻ và cách đóng nhiều vấn đề.

Để trả lời câu hỏi của bạn, câu trả lời từ GitHub là:

Đóng nhiều vấn đề

Để kết thúc nhiều vấn đề, hãy mở đầu mỗi tham chiếu vấn đề bằng một trong các từ khóa ở trên. Bạn phải sử dụng từ khóa trước mỗi vấn đề mà bạn tham chiếu để từ khóa hoạt động.

Ví dụ: Điều này đóng # 34, đóng # 23 và đóng example_user / example_repo # 42 sẽ đóng các vấn đề # 34 và # 23 trong cùng một kho lưu trữ và vấn đề # 42 trong kho "example_user / example_repo".

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.