Come collegarsi a un numero di riga specifico su github


371

So di poter collegare un numero di riga specifico su un file in un repository github (sono sicuro di averlo già visto prima) ...

Qualcuno può dirmi come fare?

Risposte:


587

Non limitarti a collegarti ai numeri di riga! Assicurati di utilizzare anche l' URL canonico . Altrimenti, quando quel file viene aggiornato, avrai un URL che punta alle righe sbagliate!

Come creare un collegamento permanente alle linee giuste:

Fai clic sul numero di riga desiderato (come la riga 18) e l'URL nel browser verrà #L18virato alla fine. Fai letteralmente clic sul 18lato sinistro, non sulla riga di codice. Somiglia a questo:

linea 18 selezionata

E ora l'URL del tuo browser è simile al seguente:

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

Se si desidera selezionare più righe, tenere semplicemente premuto il tasto Maiusc e fare clic su un secondo numero di riga, come la riga 20. È simile al seguente:

inserisci qui la descrizione dell'immagine

E ora l'URL del tuo browser è simile al seguente:

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

Ecco la parte importante:

Ora ottieni l'URL canonico per quel particolare commit premendo il ytasto. L'URL nel tuo browser cambierà per diventare qualcosa del genere:

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

Tale collegamento contiene l'hash SHA effettivo per quel particolare commit, anziché la versione corrente del file su master. Ciò significa che questo collegamento funzionerà per sempre e non punta alle righe 18-20 di qualsiasi versione futura di quel file possa contenere.

Ora crogiolati nel bagliore del tuo nuovo link permanente. ;-)

aggiornamento 29/09/2017: Come sottolineato da @watashiSHUN, github ha ora reso più semplice ottenere il collegamento permanente fornendo un ...menu a sinistra dopo aver selezionato una o più righe. Per favore, vota anche la risposta di @ watashiSHUN .

Menu permalink di GitHub

aggiornamento 25/03/2016: Caso in questione - nell'esempio sopra, ho fatto riferimento al file "README" nell'URL. Quegli URL non canonici in realtà hanno funzionato quando è stata scritta questa risposta. Ma ora quegli URL non funzionano più da quando sono READMEstati spostati README.md. Ma l'URL canonico con l'hash SHA funziona ancora, proprio come previsto.


3
Il tasto y non fa nulla per me. È stato cambiato? Provando da Google Chrome Dev Channel.
k0pernikus,

4
Funziona ancora ... I documenti dicono ancora di usare yanche la chiave ... help.github.com/articles/getting-permanent-links-to-files
broc.seib

2
che maiusc + clic sulla seconda riga per un blocco è buono! Stavo modificando manualmente l'URL per aggiungere la seconda riga :). domanda di follow-up, tuttavia, se volessi evidenziare le righe 2, 4 e 17-22? È possibile o posso evidenziare solo un blocco alla volta?
inclinazione

3
@ tr3buchet Ho appena eseguito il ping del supporto github - al momento non è possibile. Hanno detto che prenderanno in considerazione la funzionalità, ma nessuna promessa. Ho offerto che il formato fosse qualcosa di simile L18-L20,L29e che una persona potesse fare CTRLclic per aggiungere righe non consecutive. Penso che la tua idea sia un grande suggerimento e sarebbe molto utile.
broc.seib,

2
E se READMEfosse README.md?
zwcloud,

56

@ broc.seib ha una risposta sofisticata , voglio solo sottolineare che invece di premere yper ottenere il collegamento permanente, github ora ha un'interfaccia utente molto semplice che ti aiuta a raggiungerlo

  1. Seleziona la linea facendo clic sul numero della linea o seleziona più righe per downholding shift(lo stesso di come selezioni più cartelle in Esplora file) inserisci qui la descrizione dell'immagine

  2. nell'angolo destro della prima riga selezionata, espandi ...e fai cliccopy permalink inserisci qui la descrizione dell'immagine

  3. questo è tutto, un link con linee selezionate e commit hash viene copiato negli appunti : https://github.com/python/cpython/blob/c82b7f332aff606af6c9c163da75f1e86514125e/Doc/Makefile#L1-L4

18

Fare clic sul numero di riga, quindi copiare e incollare il collegamento dalla barra degli indirizzi. Per selezionare un intervallo, fai clic sul numero, quindi fai clic sul numero successivo.

In alternativa, i collegamenti sono un formato relativamente semplice, basta aggiungere #L<number>alla fine per quel numero di riga specifico, usando il collegamento al file. Ecco un link alla terza riga del gitrepository README:

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

Schermata con la riga evidenziata e la riga dell'indirizzo modificata


3
Non dimenticare che se il file cambia, questo URL rimarrà comunque alla riga 3, che potrebbe contenere nuovo codice e potrebbe non essere quello che volevi! Ho offerto un'altra soluzione che produce un collegamento permanente. Suggerimento: basta premere y. ;-)
broc.seib

4
Il collegamento è interrotto
pmrotule

12

un permalink a uno snippet di codice viene incollato in un campo di commento della richiesta pull

Puoi utilizzare i permalink per includere snippet di codice in numeri, PR, ecc.

Riferimenti:

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


2
Gif piuttosto carina!
Giovanni Benussi,

Ci scusiamo per l'off-topic, ma quale strumento usi per farlo?
Giovanni Benussi,

@GiovanniBenussi Viene da GitHub. Vedi il link
Gayan Weerakutti,

Intendo per la gif :-P hahaha
Giovanni Benussi,

1
@GiovanniBenussi Non so cosa abbia usato reversiblean ma ogni tanto realizzo gif come questa usando uno strumento carino chiamato "screentogif", dovresti provarlo github.com/NickeManarin/ScreenToGif
SamGamgee

6

Molti editor (ma vedi anche la sezione Comandi di seguito) supportano il collegamento al numero di riga o all'intervallo di un file su GitHub o BitBucket (o altri). Ecco un breve elenco:

Atomo

Apri su GitHub

Emacs

git-link

Testo sublime

GitLink

Vim

gitlink-vim


comandi

  • git-link - Sottocomando Git per ottenere un collegamento repo-browser a un oggetto git
  • ghwd - Apri l'URL github che corrisponde al ramo corrente e alla directory di lavoro della shell

0

Relativo a come collegarsi a README.mdun repository GitHub a un numero di riga specifico di codice

Hai tre casi:

  1. Possiamo collegarci a ( commit personalizzato )

    Ma Link si collegherà SEMPRE alla vecchia versione del file, che NON conterrà, ad esempio, nuovi aggiornamenti nel ramo principale. Esempio:

    https://github.com/username/projectname/blob/b8d94367354011a0470f1b73c8f135f095e28dd4/file.txt#L10
    
  2. Possiamo collegarci a ( ramo personalizzato ) come (ramo principale). Ma il collegamento rimarrà SEMPRE all'ultima versione del file che conterrà nuovi aggiornamenti. A causa di nuovi aggiornamenti, il collegamento potrebbe puntare a un numero di linea commerciale non valido. Esempio:

    https://github.com/username/projectname/blob/master/file.txt#L10
    
  3. GitHub NON può effettuare il collegamento AUTO a nessun file né a (commit personalizzato) né (master-branch) a causa dei seguenti problemi aziendali:

    • line business significato, per collegarlo ad esso nel nuovo file
    • lunghezza del codice evidenziato target che può essere modificato

0

Per una linea in una richiesta pull.

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

Questo ti porterà a una linea fintanto che L e R sono corretti. Non sono sicuro che ci sia un modo per visitare L OR RIe Se il PR aggiunge una linea che devi usare R. Se rimuove una linea è necessario utilizzare L.

Da: genera l'URL del puntatore di linea nella richiesta pull di Github

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.