Câu trả lời:
Đừng chỉ liên kết đến các số dòng! Hãy chắc chắn để sử dụng URL chuẩn . Mặt khác, khi tệp đó được cập nhật, bạn sẽ có một URL trỏ đến các dòng sai!
Làm thế nào để tạo một liên kết vĩnh viễn đến đúng dòng:
Nhấp vào số dòng bạn muốn (như dòng 18) và URL trong trình duyệt của bạn sẽ được xử lý #L18
ở cuối. Bạn thực sự nhấp vào 18
bên trái, không phải dòng mã. Trông như thế này:
Và bây giờ URL của trình duyệt của bạn trông như thế này:
https://github.com/git/git/blob/master/README#L18
Nếu bạn muốn chọn nhiều dòng, chỉ cần giữ phím shift và nhấp vào số dòng thứ hai, như dòng 20. Hình như thế này:
Và bây giờ URL của trình duyệt của bạn trông như thế này:
https://github.com/git/git/blob/master/README#L18-L20
Đây là phần quan trọng:
Bây giờ hãy lấy url chuẩn cho cam kết cụ thể đó bằng cách nhấn y
phím. URL trong trình duyệt của bạn sẽ thay đổi để trở thành một cái gì đó như thế này:
https://github.com/git/git/blob/5bdb7a78adf2a2656a1915e6fa656aecb45c1fc3/README#L18-L20
Liên kết đó chứa hàm băm SHA thực tế cho cam kết cụ thể đó, thay vì phiên bản hiện tại của tệp trên master
. Điều đó có nghĩa là liên kết này sẽ hoạt động mãi mãi và không trỏ đến các dòng 18-20 của bất kỳ phiên bản tương lai nào của tệp đó có thể chứa.
Bây giờ đắm mình trong ánh sáng của liên kết vĩnh viễn mới của bạn. ;-)
cập nhật ngày 29/9/2017: Như @watashiSHUN đã chỉ ra, giờ đây github đã giúp việc lấy liên kết vĩnh viễn dễ dàng hơn bằng cách cung cấp ...
menu bên trái sau khi bạn chọn một hoặc nhiều dòng. Vui lòng upvote @ watashiSHUN 'câu trả lời quá.
cập nhật 25/03/2016: Trường hợp tại điểm - trong ví dụ trên, tôi đã đề cập đến tệp "README" trong URL. Những url không chính tắc đó thực sự hoạt động khi câu trả lời này được viết. Nhưng bây giờ những url đó không còn hoạt động kể từ khi README
được chuyển đến README.md
. Nhưng URL chuẩn với hàm băm SHA vẫn hoạt động, đúng như mong đợi.
y
khóa quá ... help.github.com/articles/getting-permanent-links-to-files
L18-L20,L29
, và một người có thể CTRL
bấm vào để thêm các dòng không liên tiếp. Tôi nghĩ ý tưởng của bạn là một gợi ý tuyệt vời và sẽ rất hữu ích.
README
là README.md
gì?
@ broc.seib có một câu trả lời tinh vi , tôi chỉ muốn chỉ ra rằng thay vì nhấn y
để có được liên kết vĩnh viễn, giờ đây github có một giao diện người dùng rất đơn giản giúp bạn đạt được nó
Chọn dòng bằng cách nhấp vào số dòng hoặc chọn nhiều dòng bằng cách hạ cấp shift
(giống như cách bạn chọn nhiều thư mục trong trình duyệt tệp)
ở góc bên phải của dòng đầu tiên bạn đã chọn, mở rộng ...
và nhấpcopy permalink
https://github.com/python/cpython/blob/c82b7f332aff606af6c9c163da75f1e86514125e/Doc/Makefile#L1-L4
Bấm vào số dòng, sau đó sao chép và dán liên kết từ thanh địa chỉ. Để chọn một phạm vi, bấm vào số, và sau đó thay đổi bấm vào số sau.
Ngoài ra, các liên kết là một định dạng tương đối đơn giản, chỉ cần thêm #L<number>
vào cuối cho số dòng cụ thể đó, sử dụng liên kết đến tệp. Đây là một liên kết đến dòng thứ ba của git
kho lưu trữ README
:
y
. ;-)
Bạn có thể sử dụng permalinks để bao gồm các đoạn mã trong các vấn đề, PR, v.v.
Người giới thiệu:
https://help.github.com/en/articles/creating-a-permanent-link-to-a-code-snippet
Nhiều trình soạn thảo (nhưng cũng thấy phần Lệnh bên dưới) hỗ trợ liên kết đến số dòng hoặc phạm vi của tệp trên GitHub hoặc BitBucket (hoặc các loại khác). Đây là một danh sách ngắn:
Liên quan đến cách liên kết đến README.md
kho lưu trữ GitHub với số dòng mã cụ thể
Bạn có ba trường hợp:
Chúng tôi có thể liên kết đến ( cam kết tùy chỉnh )
Nhưng Liên kết sẽ LUÔN liên kết đến phiên bản tệp cũ, ví dụ sẽ KHÔNG chứa các bản cập nhật mới trong nhánh chính. Thí dụ:
https://github.com/username/projectname/blob/b8d94367354011a0470f1b73c8f135f095e28dd4/file.txt#L10
Chúng tôi có thể liên kết đến ( chi nhánh tùy chỉnh ) như (nhánh chính). Nhưng liên kết sẽ LUÔN liên kết đến phiên bản tệp mới nhất sẽ chứa các bản cập nhật mới. Do các cập nhật mới, liên kết có thể trỏ đến số dòng doanh nghiệp không hợp lệ. Thí dụ:
https://github.com/username/projectname/blob/master/file.txt#L10
GitHub KHÔNG thể tạo liên kết TỰ ĐỘNG với bất kỳ tệp nào thành (cam kết tùy chỉnh) cũng như (chi nhánh chính) Vì các vấn đề kinh doanh sau:
Đối với một dòng trong một yêu cầu kéo.
https://github.com/foo/bar/pull/90/files#diff-ce6bf647d5a531e54ef0502c7fe799deR27
https://github.com/foo/bar/pull/
90 <- PR number
/files#diff-
ce6bf647d5a531e54ef0502c7fe799de <- MD5 has of file name from repo root
R <- Which side of the diff to reference (merge-base or head). Can be L or R.
27 <- Line number
Điều này sẽ đưa bạn đến một dòng miễn là L và R là chính xác. Tôi không chắc có cách nào để truy cập L OR RIe Nếu PR thêm một dòng bạn phải sử dụng R
. Nếu nó loại bỏ một dòng bạn phải sử dụng L
.