Làm cách nào để tôi tham chiếu một chi nhánh hiện có từ một vấn đề trong GitHub?


133

Hãy nói rằng tôi có một chi nhánh được đặt tên feature/1. Và cũng là vấn đề # 1. Tôi muốn liên kết chi nhánh đó với vấn đề đó.

Có cách nào để liên kết chi nhánh đó để vấn đề mà từ vấn đề này? Mà không thực hiện một cam kết.

Câu trả lời:


93

Trực tiếp từ GitHub :

Người giới thiệu

Một số tài liệu tham khảo được liên kết tự động:

  • SHA: be6a8cc1c1ecfe9361fb51e4869af15a13fc2cd2
  • Người dùng @ SHA ref: mojombo @ be6a8cc1c1ecfe9361fb51e4869af15a13fc2cd2
  • Người dùng / Dự án @ SHA: mojombo / god @ be6a8cc1c1ecfe9361fb51e4869af15a13fc2cd2
  • #Num: # 1
  • Người dùng / # Num: mojombo # 1
  • Người dùng / Dự án # Num: mojombo / god # 1

Có vẻ như không thể trực tiếp (như trong user / repo / Branch), nhưng có thể bằng cách sử dụng id của cây?


73
Tôi đã liên lạc với bộ phận hỗ trợ của Github và họ nói với tôi rằng điều đó là không thể ngay bây giờ.
Nerian

5
Thực sự mong muốn điều này là có thể. Một công việc xoay quanh vấn đề này sẽ là sử dụng các yêu cầu kéo (thay vì đẩy trực tiếp) và tham chiếu vấn đề từ bên trong yêu cầu kéo.
Olivier Lalonde

2
Hmm, có nghĩa là tên chi nhánh không tĩnh nhưng cam kết là.
jonasfj

3
@jonasfj URL Github cho một chi nhánh là tĩnh - luôn luôn /user/repo/tree/branch-name(hoặc /user/repo/commits/branch-nametùy thuộc vào nội dung bạn muốn xem)
GMA

Có thể, như thể hiện trong câu trả lời của tôi cho câu hỏi này.
LS

89

Như đã đề cập trong một câu trả lời khác , GitHub tự động tạo liên kết đến nhiều thứ khác nhau, bao gồm các kho GH khác, nhưng không liên kết với các nhánh trong các kho lưu trữ đó. Khi tôi muốn làm điều này, tôi tự tạo liên kết như thế này:

[a link to a branch](/_user_/_project_/tree/_branch_)

Ở đâu _user_, _project__branch_nên được thay thế bằng các phần của URL của chi nhánh. Ví dụ: một chi nhánh trong dự án "nhà ngôn ngữ học" của GitHub:

[api-changes branch in github/linguist](/github/linguist/tree/api-changes)

Quan trọng:

  • Bộ xử lý Markdown của GitHub tạo các liên kết bằng cách sử dụng giá trị URL chính xác được đặt trong dấu ngoặc đơn. Bạn phải chỉ định URL xem xét cách trình duyệt sẽ xử lý liên kết đó. Nếu URL được chỉ định chỉ là phần đường dẫn (như trong ví dụ này), các trình duyệt sẽ coi đường dẫn đó có liên quan đến URL của trang hiện tại. Nếu đường dẫn tương đối đó bắt đầu bằng dấu gạch chéo (" /", cũng như trong ví dụ này), thì nó sẽ liên quan đến thư mục gốc của máy chủ URL của trang hiện tại. Mặt khác, các đường dẫn không bắt đầu bằng dấu gạch chéo sẽ được coi là tương đối với cha mẹ của URL của trang hiện tại. (Đây là đặc tả liên kết HTML cơ bản.)
  • Đừng quên bao gồm treemột phần của URL khi đề cập đến các nhánh cụ thể của dự án.

8
Tôi hiện đang nhận được liên kết của tôi được chuyển đổi /user/proj/blob/branchngay cả khi tôi đã viết treevà không blob. Chỉnh sửa: làm việc:../../tree/branch
kho tiền

@vault Bạn có thể gửi một liên kết ở đây đến tài liệu Markdown có chứa một ví dụ về điều này?
LS

@LS nếu tôi nhớ chính xác, tôi cần thông tin này để viết README này .
hầm

2
@vault tôi hiểu rồi! Rõ ràng có các quy tắc khác nhau cho các liên kết từ các tệp repo MD so với từ văn bản vấn đề MD. Nguồn gốc. Hỏi và A của tôi là về các liên kết trong văn bản vấn đề, nhưng tôi sẽ cập nhật câu trả lời của mình để bao gồm các tệp repo MD. Tôi rẽ nhánh repo của bạn và thêm một liên kết đến README.md. GH dường như loại bỏ "/" hàng đầu khỏi liên kết và nối nó vào URL hiện tại. Đó có thể là một lỗi. Tôi sẽ kiểm tra nó. Dù sao, các URL tương đối có ".." có ý nghĩa hơn trong các tệp repo. Ví dụ: nếu bạn hợp nhất ngã ba của tôi, liên kết mới của tôi README.mdsẽ quay trở lại ngã ba của tôi.
LS

13

Lưu ý rằng từ tháng 4 năm 2013 (" Nhãn chi nhánh và thẻ cho các trang cam kết "):

  • Bất kỳ cam kết nào cũng có thể đề cập đến chi nhánh mà nó là một phần của:

một phần của cam kết

Nếu cam kết không nằm trên nhánh mặc định, chỉ báo sẽ hiển thị các nhánh chứa cam kết. Nếu cam kết là một phần của yêu cầu kéo không được trộn, một liên kết sẽ được hiển thị .

Liên kết để kéo yêu cầu

Điều đó có nghĩa là việc tham chiếu một cam kết từ vấn đề sẽ cho phép người dùng nhìn thấy chi nhánh (bằng cách nhìn vào cam kết) và thậm chí để thấy một liên kết quay lại vấn đề (vẫn bằng cách nhìn vào cam kết).


6

Bạn không thể tham khảo chi nhánh trực tiếp.

Nhưng bạn có thể tạo một tham chiếu đến một nhánh so với một nhánh khác. Nếu bạn nhập này:

https://github.com/user1/repo/compare/branch1...branch2

nó sẽ hiển thị như

branch1...branch2

Ngoài ra, bạn có thể so sánh các chi nhánh trên dĩa. Nếu user2đã rẽ nhánh repo, điều này hoạt động:

https://github.com/user1/repo/compare/branch1...user2:branch2

0

Tôi đang tìm kiếm các khả năng như nhau trong Git, nhưng không có gì đã có sẵn vì vậy tôi quyết định trực tiếp tham khảo các brach với một markdown liên kết bằng cách sử dụng tài liệu tham khảo Hash.

# Issue02

## Commit Hash _<hash_number>_

...Rest of comments in the issue...

Vì vậy, bây giờ trong tổ chức của tôi, chúng tôi luôn thực hiện tham chiếu đó khi mở hoặc đóng một vấn đề. Nó phải được giới thiệu đến một Hash nhất định và gián tiếp nó được giới thiệu đến nhánh tương ứng.

Tôi đoán bạn đã có ngay bây giờ, nhưng nếu không, để có được hàm băm bạn sẽ sử dụng git log

Lưu ý: Nó không đề cập đến một chi nhánh chứng nhận mà là một cam kết,

Với một số giờ làm việc tôi nghĩ có thể tự động làm điều này và tạo một công cụ dòng lệnh,

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.