Cara menautkan ke nomor baris tertentu di github

371

Saya tahu saya dapat menautkan ke nomor baris tertentu pada file di repo github (saya yakin saya pernah melihat ini sebelumnya) ...

Dapatkah seseorang memberitahu saya bagaimana untuk melakukan hal ini?

sfletche
sumber

Jawaban:

587

Jangan hanya menautkan ke nomor baris! Pastikan untuk menggunakan URL kanonik juga. Kalau tidak, ketika file itu diperbarui, Anda akan memiliki URL yang mengarah ke baris yang salah!

Cara membuat tautan permanen ke jalur yang benar:

Klik nomor baris yang Anda inginkan (seperti baris 18), dan URL di peramban Anda akan #L18ditempelkan di bagian akhir. Anda benar-benar mengklik pada 18di sebelah kiri, bukan garis kode. Terlihat seperti ini:

jalur 18 dipilih

Dan sekarang URL browser Anda terlihat seperti ini:

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

Jika Anda ingin beberapa baris dipilih, cukup tahan tombol shift dan klik nomor baris kedua, seperti baris 20. Sepertinya ini:

masukkan deskripsi gambar di sini

Dan sekarang URL browser Anda terlihat seperti ini:

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

Inilah bagian yang penting:

Sekarang dapatkan url kanonik untuk komit tertentu dengan menekan ytombol. URL di browser Anda akan berubah menjadi seperti ini:

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

Tautan itu berisi hash SHA aktual untuk komit tertentu, bukan versi file saat ini master. Itu berarti bahwa tautan ini akan berfungsi selamanya dan tidak mengarah ke baris 18-20 dari versi file apa pun di masa depan yang mungkin berisi.

Sekarang nikmati cahaya dari tautan permanen baru Anda. ;-)

pembaruan 9/29/2017: Seperti yang ditunjukkan oleh @watashiSHUN, github kini telah membuatnya lebih mudah untuk mendapatkan tautan permanen dengan menyediakan ...menu di sebelah kiri setelah Anda memilih satu atau lebih baris. Tolong upvote jawaban watashiSHUN juga.

Menu permalink GitHub

pembaruan 3/25/2016: Contoh kasus - dalam contoh di atas, saya merujuk ke file "README" di URL. URL non-kanonik itu benar-benar berfungsi ketika jawaban ini ditulis. Tetapi sekarang url-url itu tidak lagi berfungsi karena READMEdipindahkan ke README.md. Tetapi URL kanonik dengan hash SHA masih berfungsi, seperti yang diharapkan.

broc.seib
sumber
3
Kunci y tidak membantu saya. Apakah ini sudah diubah? Mencoba dari Saluran Dev Google Chrome.
k0pernikus
4
Ini masih berfungsi ... Documents masih mengatakan untuk menggunakan ykunci juga ... help.github.com/articles/getting-permanent-links-to-files
broc.seib
2
shift + klik baris kedua untuk sebuah blok itu bagus! Saya secara manual mengedit URL untuk menambahkan baris kedua :). tindaklanjuti pertanyaannya, bagaimana jika saya ingin baris 2, 4, dan 17-22 disorot? Apakah itu mungkin atau bisakah saya menyorot satu blok saja?
kegemaran
3
@ tr3buchet Saya baru saja melakukan ping dukungan github - itu tidak mungkin saat ini. Mereka mengatakan akan mempertimbangkan fitur tersebut, tetapi tidak ada janji. Saya menawarkan formatnya seperti L18-L20,L29, dan seseorang dapat CTRLmengklik untuk menambahkan baris yang tidak berurutan. Saya pikir ide Anda adalah saran yang bagus dan akan sangat berguna.
broc.seib
2
Bagaimana jika READMEitu README.md?
zwcloud
56

@ broc.seib memiliki jawaban yang canggih , saya hanya ingin menunjukkan bahwa alih-alih menekan yuntuk mendapatkan tautan permanen, github sekarang memiliki UI yang sangat sederhana yang membantu Anda mencapainya.

  1. Pilih baris dengan mengklik nomor baris atau pilih beberapa baris dengan menekan shift(sama seperti cara Anda memilih beberapa folder dalam file explorer) masukkan deskripsi gambar di sini

  2. di sudut kanan baris pertama yang Anda pilih, perluas ...dan klikcopy permalink masukkan deskripsi gambar di sini

  3. itu saja, tautan dengan garis yang dipilih dan komit hash disalin ke clipboard Anda : https://github.com/python/cpython/blob/c82b7f332aff606af6c9c163da75f1e86514125e/Doc/Makefile#L1-L4
watashiSHUN
sumber
18

Klik nomor baris, lalu salin dan tempel tautan dari bilah alamat. Untuk memilih rentang, klik nomornya, dan kemudian geser klik nomor selanjutnya.

Atau, #L<number>tautannya adalah format yang relatif sederhana, cukup tambahkan sampai akhir untuk nomor baris tertentu, menggunakan tautan ke file. Berikut ini tautan ke baris ketiga gitrepositori README:

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

Tangkapan layar dengan garis yang disorot dan garis alamat yang dimodifikasi

Leigh
sumber
3
Jangan lupa bahwa jika file berubah, URL ini akan tetap mengarah ke baris 3, yang dapat berisi kode baru, dan mungkin bukan yang Anda inginkan! Saya telah menawarkan solusi lain yang menghasilkan tautan permanen. Petunjuk: cukup tekan y. ;-)
broc.seib
4
Tautan rusak
pmrotule
12

permalink ke potongan kode disisipkan ke dalam kolom komentar permintaan tarik

Anda dapat menggunakan permalink untuk memasukkan cuplikan kode dalam masalah, PR, dll.

Referensi:

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

Gayan Weerakutti
sumber
2
Gif cukup bagus!
Giovanni Benussi
Maaf untuk di luar topik, tetapi alat apa yang Anda gunakan untuk membuatnya?
Giovanni Benussi
@GiovanniBenussi Ini dari GitHub. Lihat tautannya.
Gayan Weerakutti
Maksud saya untuk gif :-P hahaha
Giovanni Benussi
1
@GiovanniBenussi Saya tidak tahu apa reversiblean digunakan tetapi kadang-kadang saya membuat gif seperti ini menggunakan alat bagus yang disebut "screentogif", Anda harus mencobanya github.com/NickeManarin/ScreenToGif
SamGamgee
6

Banyak editor (tetapi juga melihat bagian Perintah di bawah) mendukung tautan ke nomor baris atau rentang file di GitHub atau BitBucket (atau lainnya). Berikut daftar singkatnya:

Atom

Buka di GitHub

Emacs

git-link

Teks Sublim

GitLink

Vim

gitlink-vim


Perintah

  • git-link - Git subcommand untuk mendapatkan tautan repo-browser ke objek git
  • ghwd - Buka URL github yang cocok dengan cabang dan direktori kerja shell Anda saat ini
DBagBaggerWithSwagger
sumber
0

Terkait dengan cara menautkan ke README.mdrepositori GitHub ke nomor baris kode tertentu

Anda memiliki tiga kasus:

  1. Kami dapat menautkan ke ( komit kustom )

    Tetapi Tautan akan SELALU menautkan ke versi file lama, yang TIDAK akan memuat pembaruan baru di cabang master misalnya. Contoh:

    https://github.com/username/projectname/blob/b8d94367354011a0470f1b73c8f135f095e28dd4/file.txt#L10
    
  2. Kami dapat menautkan ke ( cabang khusus ) seperti (cabang-master). Tetapi tautan akan SELALU menautkan ke versi file terbaru yang akan berisi pembaruan baru. Karena pembaruan baru, tautan dapat mengarah ke nomor lini bisnis yang tidak valid. Contoh:

    https://github.com/username/projectname/blob/master/file.txt#L10
    
  3. GitHub TIDAK BISA membuat tautan-AUTO ke file apa saja baik ke (komit kustom) maupun (cabang-master) Karena masalah bisnis berikut:

    • makna bisnis baris , untuk menautkannya dalam file baru
    • panjang kode target yang disorot yang dapat diubah
ahmednabil88
sumber
0

Untuk garis dalam permintaan tarik.

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

Ini akan membawa Anda ke garis selama L dan R benar. Saya tidak yakin apakah ada cara untuk mengunjungi L ATAU RIe Jika PR menambahkan garis yang harus Anda gunakan R. Jika menghapus garis yang harus Anda gunakan L.

Dari: Hasilkan URL penunjuk baris ke Permintaan Tarik Github

Vaughan
sumber