Liên kết đến số sự cố trên GitHub trong thông báo cam kết


Câu trả lời:


954

Chỉ cần đưa #xxxvào thông điệp cam kết của bạn để tham khảo một vấn đề mà không đóng nó.

Với các vấn đề GitHub 2.0 mới, bạn có thể sử dụng các từ đồng nghĩa này để tham chiếu một vấn đề và đóng nó (trong thông điệp cam kết của bạn):

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

Bạn cũng có thể thay thế #xxxbằng gh-xxx.

Các vấn đề tham khảo và kết thúc trên các repos cũng hoạt động:

fixes user/repo#xxx

Kiểm tra các tài liệu có sẵn trong phần Trợ giúp của họ.


4
Fix issue #xxxKhông có ý tưởng cho tôi, bất kỳ ý tưởng? Nó tham khảo vấn đề, nhưng không đóng nó.
Dennis

16
@Dennis xóa từ "vấn đề"

1
@JamesTomasino điều đó là có thể - Tôi nhận thấy rằng điều này đã không làm việc cho tôi khi tôi làm việc trên một chi nhánh được gọi dev.
Jon

1
Trong mỗi tình huống, mỗi người sẽ được sử dụng?
Nilsi

1
Tôi sẽ không trở thành người chuyển câu trả lời này từ 666 phiếu sang 667, nhưng điều này rất hữu ích.
jakeatwork

168

Nếu bạn muốn liên kết đến sự cố GitHub đóng sự cố, bạn có thể cung cấp các dòng sau trong thông báo cam kết Git của mình:

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

(Bất kỳ một trong ba sẽ hoạt động.) Lưu ý rằng điều này sẽ liên kết đến vấn đề và cũng đóng nó. Bạn có thể tìm hiểu thêm trong bài đăng trên blog này (bắt đầu xem video được nhúng vào khoảng 1:40).

Tôi không chắc chắn nếu một cú pháp tương tự sẽ chỉ liên kết đến một vấn đề mà không đóng nó.


31
Bạn chỉ có thể sử dụng số lượng vấn đề (ví dụ # 456) nó sẽ liên kết với tác vụ mà không đóng nó.
Matthieu Napoli

9
Tôi sẽ chọn "gh-1" thay vì "# 1" đơn giản vì bạn không bao giờ biết liệu kho lưu trữ có được xuất / nhân đôi đến một nơi nào khác ngoài github hay không. Sau đó, "số 1" sẽ không có nhiều ý nghĩa.
huyz

2
@mipadi: .sau khi "Đóng GH-1` có cần thiết không? Ngoài ra, nó có phân biệt chữ hoa chữ thường không?
Lekensteyn

1
@Lekensteyn: Tôi không tin khoảng thời gian này là cần thiết. Không chắc chắn về trường hợp nhạy cảm.
mipadi

message (closes GH-28)làm việc cho tôi, không chắc chắn nếu mọi thứ là không phân biệt chữ hoa chữ thường.
Lekensteyn

64

Bạn cũng có thể tham khảo chéo repos:

githubuser/repository#xxx

xxx là số vấn đề


62

github thêm một tham chiếu đến cam kết nếu nó chứa #issuenbr (được phát hiện ra điều này một cách tình cờ).


4
chỉ cần thử nghiệm nó, hoạt động như một bùa mê, cảm ơn ... đây là câu trả lời nên được đánh dấu là câu trả lời đúng ...
opensas

14

họ có một bài viết hay về các vấn đề mới 2.0 trên blog của họ https://github.blog/2011-04-09-issues-2-0-the-next-generation/

từ đồng nghĩa bao gồm

  • sửa lỗi #xxx
  • đã sửa #xxx
  • sửa lỗi #xxx
  • đóng #xxx
  • đóng #xxx
  • đã đóng #xxx

sử dụng bất kỳ từ khóa nào trong thông điệp cam kết sẽ khiến cho cam kết của bạn được đề cập hoặc đóng một vấn đề.


Điều đó đã có trong danh sách của tôi, tôi không nghĩ họ phân biệt chữ hoa chữ thường.
xero

4

Cũng như các câu trả lời khác: Nếu bạn thậm chí không muốn viết thông điệp cam kết với số vấn đề và tình cờ sử dụng Eclipse để phát triển, thì bạn có thể cài đặt các trình cắm eGit và Mylyn cũng như trình kết nối GitHub cho Mylyn. Sau đó, Eclipse có thể tự động theo dõi vấn đề nào bạn đang làm việc và tự động điền vào thông điệp cam kết , bao gồm cả số vấn đề như trong tất cả các câu trả lời khác.

Để biết thêm chi tiết về thiết lập đó, hãy xem http://wiki.eclipse.org/EGit/GitHub/UserGuide


4

Để liên kết số vấn đề với thông điệp cam kết của bạn, bạn nên thêm: #issue_numbertrong thông điệp cam kết git của bạn.

Thông điệp cam kết từ Hướng dẫn Kiểu Thông báo Cam kết 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

Bạn cũng có thể tham khảo các kho lưu trữ:

githubuser/repository#issue_number

Thật vô nghĩa (và thực sự làm tôi khó chịu) rằng họ sử dụng "feat" như một từ viết tắt của "tính năng", đặc biệt là khi cùng lúc họ sử dụng "refactor" thậm chí còn dài hơn "tính năng".
Michel Jung

@MichelJung bạn có thể lập luận rằng nó featđược sử dụng thường xuyên hơn refactor, cũng không có chữ viết tắt rõ ràng cho refactor( refcó thể có nghĩa là tham chiếu, rfquá không rõ ràng, v.v.).
Chris Krasnzewski

3

Một trong những dự án đầu tiên của tôi với tư cách là một lập trình viên là một viên đá quý có tên là stagecoach , trong số những thứ khác) cho phép tự động thêm số vấn đề github vào mỗi thông điệp cam kết trên một nhánh, đó là một phần của câu hỏi chưa thực sự được trả lời .

Về cơ bản khi tạo một nhánh bạn sẽ sử dụng một lệnh tùy chỉnh (đại loại như stagecoach -b <branch_name> -g <issue_number>) và số vấn đề sau đó sẽ được gán cho nhánh đó trong tệp yml. Sau đó, có một hook hook tự động gắn số vấn đề vào thông điệp cam kết.

Tôi sẽ không đề xuất nó cho sử dụng sản xuất vì tại thời điểm đó tôi chỉ mới lập trình được vài tháng và tôi không còn duy trì nó nữa, nhưng nó có thể được ai đó quan tâm.


Tôi nghĩ rằng câu trả lời của bạn đang cố gắng giải quyết câu hỏi chính xác từ OP, tức là "một cách để tự động có một liên kết đến vấn đề được thêm vào trong cam kết". Tất cả các câu trả lời khác dựa vào ghi nhớ của lập trình viên để thêm "Bản sửa lỗi # ..., Đã giải quyết # ... vv" cụm từ để cam kết và điều này sẽ không xảy ra mỗi lần như chúng ta biết. Nâng cao.
demisx
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.