วิธีเชื่อมโยงไปยังหมายเลขบรรทัดเฉพาะบน GitHub


371

ฉันรู้ว่าฉันสามารถเชื่อมโยงไปยังหมายเลขบรรทัดที่ระบุในไฟล์บน repo Github (ฉันแน่ใจว่าฉันเคยเห็นมาก่อน) ...

มีคนบอกฉันถึงวิธีการทำสิ่งนี้ได้ไหม

คำตอบ:


587

อย่าเพียงแค่ลิงค์ไปยังหมายเลขบรรทัด! โปรดใช้URL ที่เป็นที่ยอมรับเช่นกัน มิฉะนั้นเมื่ออัปเดตไฟล์นั้นคุณจะมี URL ที่ชี้ไปยังบรรทัดที่ไม่ถูกต้อง!

วิธีสร้างลิงก์ถาวรไปยังบรรทัดที่ถูกต้อง:

คลิกที่หมายเลขบรรทัดที่คุณต้องการ (เช่นบรรทัดที่ 18) และ URL ในเบราว์เซอร์ของคุณจะได้รับการ#L18แนบท้าย คุณคลิก18ที่ด้านซ้ายไม่ใช่บรรทัดของรหัส ดูเหมือนว่านี้:

เลือกบรรทัดที่ 18

และตอนนี้ URL ของเบราว์เซอร์ของคุณจะเป็นดังนี้:

https://github.com/git/git/blob/master/README#L18

หากคุณต้องการให้เลือกหลายบรรทัดให้กดปุ่ม Shift ค้างไว้แล้วคลิกหมายเลขบรรทัดที่สองเช่นบรรทัดที่ 20 ดูเหมือนว่า:

ป้อนคำอธิบายรูปภาพที่นี่

และตอนนี้ URL ของเบราว์เซอร์ของคุณจะเป็นดังนี้:

https://github.com/git/git/blob/master/README#L18-L20

นี่คือส่วนสำคัญ:

ตอนนี้รับ URL ที่ยอมรับสำหรับเฉพาะที่กระทำโดยการกดyคีย์ URL ในเบราว์เซอร์ของคุณจะเปลี่ยนเป็นดังนี้:

https://github.com/git/git/blob/5bdb7a78adf2a2656a1915e6fa656aecb45c1fc3/README#L18-L20

การเชื่อมโยงที่มีกัญชา SHA masterที่เกิดขึ้นจริงโดยเฉพาะอย่างยิ่งสำหรับการที่กระทำมากกว่ารุ่นปัจจุบันของไฟล์บน นั่นหมายความว่าลิงก์นี้จะใช้งานได้ตลอดไปและไม่ชี้ไปที่บรรทัดที่ 18-20 ของไฟล์ใด ๆ ที่อาจมีในอนาคต

ตอนนี้รับชมลิงค์ถาวรใหม่ของคุณ ;-)

อัปเดต 9/9/2560:ตามที่ระบุโดย @watashiSHUN ตอนนี้ github ทำให้การเชื่อมโยงถาวรทำได้ง่ายขึ้นโดยการแสดง...เมนูทางด้านซ้ายหลังจากที่คุณเลือกอย่างน้อยหนึ่งบรรทัด ได้โปรดตอบคำตอบของ @ watashiSHUNด้วย

เมนู Permalink ของ GitHub

อัปเดต 3/25/2016:ตัวอย่างตรงประเด็น - ในตัวอย่างด้านบนฉันอ้างถึงไฟล์ "README" ใน URL URL ที่ไม่เป็นที่ยอมรับเหล่านั้นทำงานได้จริงเมื่อเขียนคำตอบนี้ แต่ตอนนี้ URL เหล่านั้นไม่ทำงานตั้งแต่ถูกย้ายไปREADME README.mdแต่ URL แบบบัญญัติซึ่งมีแฮช SHA ยังคงใช้งานได้ตามที่คาดไว้


3
ปุ่ม y ไม่ได้ทำอะไรให้ฉันเลย สิ่งนี้มีการเปลี่ยนแปลงหรือไม่? ลองจากช่อง Google Chrome Dev
k0pernikus

4
มันยังใช้งานได้ ... เอกสารยังบอกว่าต้องใช้yรหัสด้วย ... help.github.com/articles/getting-permanent-links-to-files
broc.seib

2
กะนั้น + คลิกบรรทัดที่สองสำหรับบล็อกนั้นดีมาก! ฉันแก้ไข URL ด้วยตนเองเพื่อเพิ่มบรรทัดที่สอง :) คำถามติดตามแม้ว่าจะเกิดอะไรขึ้นถ้าฉันต้องการบรรทัดที่ 2, 4 และจาก 17-22 ที่เน้นไว้ เป็นไปได้หรือไม่ที่ฉันจะสามารถไฮไลต์ได้ครั้งละหนึ่งบล็อกเท่านั้น?
ชอบ

3
@ tr3buchet ฉันเพิ่ง pinged gitub สนับสนุน - มันเป็นไปไม่ได้ในขณะนี้ พวกเขากล่าวว่าพวกเขาจะพิจารณาคุณสมบัติ แต่ไม่มีสัญญา ฉันเสนอว่ารูปแบบเป็นสิ่งที่ชอบL18-L20,L29และคน ๆ นั้นสามารถCTRLคลิกเพื่อเพิ่มบรรทัดที่ไม่ต่อเนื่องกันได้ ฉันคิดว่าความคิดของคุณเป็นข้อเสนอแนะที่ดีและจะมีประโยชน์มาก
broc.seib

2
เกิดอะไรขึ้นถ้าREADMEเป็นREADME.md?
zwcloud

56

@ broc.seib มีคำตอบที่มีความซับซ้อน , ผมแค่อยากจะชี้ให้เห็นว่าแทนการกดyที่จะได้รับการเชื่อมโยงถาวร GitHub ตอนนี้มี UI ที่ง่ายมากที่จะช่วยให้คุณประสบความสำเร็จนั้น

  1. เลือกบรรทัดโดยคลิกที่หมายเลขบรรทัดหรือเลือกหลายบรรทัดตามการลดขนาดshift(เช่นเดียวกับวิธีที่คุณเลือกหลายโฟลเดอร์ในตัวสำรวจไฟล์) ป้อนคำอธิบายรูปภาพที่นี่

  2. ที่มุมขวาของบรรทัดแรกที่คุณเลือกขยาย...และคลิกcopy permalink ป้อนคำอธิบายรูปภาพที่นี่

  3. ที่มันเชื่อมโยงกับสายที่เลือกและกระทำกัญชาถูกคัดลอกไปยังคลิปบอร์ดของคุณ : https://github.com/python/cpython/blob/c82b7f332aff606af6c9c163da75f1e86514125e/Doc/Makefile#L1-L4

18

คลิกที่หมายเลขบรรทัดแล้วคัดลอกและวางลิงก์จากแถบที่อยู่ ในการเลือกช่วงให้คลิกที่ตัวเลขจากนั้นเลื่อนคลิกที่ตัวเลขในภายหลัง

อีกทางหนึ่งการเชื่อมโยงเป็นรูปแบบที่ค่อนข้างง่ายเพียงแค่ต่อท้าย#L<number>หมายเลขบรรทัดนั้นโดยใช้ลิงก์ไปยังไฟล์ นี่คือลิงค์ไปยังบรรทัดที่สามของที่gitเก็บREADME:

https://github.com/git/git/blob/master/README#L3

ภาพหน้าจอที่มีเส้นที่ไฮไลต์และบรรทัดที่อยู่ที่แก้ไข


3
อย่าลืมว่าหากไฟล์มีการเปลี่ยนแปลง URL นี้จะยังคงชี้ไปที่บรรทัดที่ 3 ซึ่งอาจมีรหัสใหม่และอาจไม่ใช่สิ่งที่คุณต้องการ! ฉันเสนอโซลูชันอื่นที่ให้ลิงก์ถาวร คำแนะนำ: yเพียงแค่กด ;-)
broc.seib

4
ลิงก์ใช้งานไม่ได้
pmrotule

12

ลิงก์ไปยังโค้ดขนาดสั้นถูกวางลงในฟิลด์ข้อคิดเห็นการร้องขอเพื่อดึง

คุณสามารถใช้ Permalink เพื่อรวมตัวอย่างโค้ดในปัญหา PRs ฯลฯ

อ้างอิง:

https://help.github.com/en/articles/creating-a-permanent-link-to-a-code-snippet


2
GIF ที่ดีงาม!
Giovanni Benussi

ขออภัยที่เป็นหัวข้อ แต่คุณใช้เครื่องมืออะไรในการสร้าง?
Giovanni Benussi

@GiovanniBenussi มันมาจาก GitHub ดูลิงค์
Gayan Weerakutti

ฉันหมายถึง gif :-P hahaha
Giovanni Benussi

1
@GiovanniBenussi ฉันไม่ทราบว่าใช้ reverseiblean อะไร แต่บางครั้งฉันทำ gif เช่นนี้โดยใช้เครื่องมือที่ดีที่เรียกว่า "screentogif" คุณควรลองใช้github.com/NickeManarin/ScreenToGif
SamGamgee

6

ผู้แก้ไขหลายคน (แต่เห็นส่วนคำสั่งด้านล่าง) รองรับการเชื่อมโยงไปยังหมายเลขบรรทัดหรือช่วงของไฟล์ใน GitHub หรือ BitBucket (หรืออื่น ๆ ) นี่คือรายการสั้น ๆ :

อะตอม

เปิดบน GitHub

Emacs

คอมไพล์ลิงค์

ข้อความประเสริฐ

GitLink

เป็นกลุ่ม

gitlink-เป็นกลุ่ม


คำสั่ง

  • git-link - คำสั่งย่อย Git สำหรับการรับลิงค์ repo-browser ไปยังวัตถุ git
  • ghwd - เปิด URL github ที่ตรงกับสาขาปัจจุบันของคุณและไดเรกทอรีทำงาน

0

เกี่ยวข้องกับวิธีลิงก์ไปยังที่README.mdเก็บ GitHub ไปยังหมายเลขบรรทัดของรหัสที่ระบุ

คุณมีสามกรณี:

  1. เราสามารถเชื่อมโยงไปยัง ( กระทำที่กำหนดเอง)

    แต่ลิงก์จะลิงก์ไปยังเวอร์ชันไฟล์เก่าเสมอซึ่งจะไม่มีการอัพเดตใหม่ในสาขาหลักเช่น ตัวอย่าง:

    https://github.com/username/projectname/blob/b8d94367354011a0470f1b73c8f135f095e28dd4/file.txt#L10
    
  2. เราสามารถเชื่อมโยงไปยัง (กำหนดเองสาขา ) เช่น (หลักสาขา) แต่ลิงค์จะลิงค์ไปยังไฟล์เวอร์ชั่นล่าสุดเสมอซึ่งจะมีการอัพเดทใหม่ เนื่องจากการอัปเดตใหม่ลิงก์อาจชี้ไปยังหมายเลขบรรทัดธุรกิจที่ไม่ถูกต้อง ตัวอย่าง:

    https://github.com/username/projectname/blob/master/file.txt#L10
    
  3. GitHub ไม่สามารถสร้างลิงก์อัตโนมัติไปยังไฟล์ใด ๆ ไปยัง (การกระทำที่กำหนดเอง) หรือ (สาขาหลัก) เนื่องจากปัญหาทางธุรกิจดังต่อไปนี้:

    • ความหมายของธุรกิจสายการเชื่อมโยงกับมันในไฟล์ใหม่
    • ความยาวของโค้ดไฮไลต์เป้าหมายซึ่งสามารถเปลี่ยนแปลงได้

0

สำหรับบรรทัดในคำขอดึง

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

สิ่งนี้จะนำคุณไปยังบรรทัดตราบใดที่ L และ R ถูกต้อง ผมไม่แน่ใจว่ามีวิธีการมาเยือนลิตรหรือ Rie Rหากการประชาสัมพันธ์เพิ่มบรรทัดคุณต้องใช้ ถ้ามันลบบรรทัดคุณต้องใช้Lถ้ามันจะเอาเส้นคุณต้องใช้

จาก: สร้าง URL ตัวชี้บรรทัดลงในคำขอดึง Github

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