Cómo vincular a un número de línea específico en github

371

Sé que puedo vincular a un número de línea específico en un archivo en un repositorio de github (estoy seguro de que he visto esto antes) ...

alguien puede decirme cómo hacer esto?

sfletche
fuente

Respuestas:

587

¡No solo enlace a los números de línea! Asegúrese de usar la URL canónica también. De lo contrario, cuando se actualice ese archivo, ¡tendrá una URL que señala las líneas incorrectas!

Cómo hacer un enlace permanente a las líneas correctas:

Haga clic en el número de línea que desee (como la línea 18), y la URL en su navegador aparecerá #L18al final. Literalmente haces clic en el 18lado izquierdo, no en la línea de código. Se ve como esto:

línea 18 seleccionada

Y ahora la URL de su navegador se ve así:

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

Si desea seleccionar varias líneas, simplemente mantenga presionada la tecla Mayús y haga clic en un segundo número de línea, como la línea 20. Se ve así:

ingrese la descripción de la imagen aquí

Y ahora la URL de su navegador se ve así:

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

Aquí está la parte importante:

Ahora obtenga la url canónica para esa confirmación en particular presionando la ytecla. La URL en su navegador cambiará para convertirse en algo como esto:

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

Ese enlace contiene el hash SHA real para esa confirmación en particular, en lugar de la versión actual del archivo master. Eso significa que este enlace funcionará para siempre y no apuntará a las líneas 18-20 de cualquier versión futura de ese archivo que pueda contener.

Ahora disfruta del brillo de tu nuevo enlace permanente. ;-)

actualización 29/09/2017: como señaló @watashiSHUN, github ahora ha facilitado la obtención del enlace permanente al proporcionar un ...menú a la izquierda después de seleccionar una o más líneas. Por favor, vota la respuesta de @ watashiSHUN también.

Menú de enlace permanente de GitHub

actualización 25/03/2016: Caso en cuestión: en el ejemplo anterior, me referí al archivo "README" en la URL. Esas URL no canónicas realmente funcionaron cuando se escribió esta respuesta. Pero ahora esas URL ya no funcionan desde que READMEse trasladó a README.md. Pero la URL canónica con hash SHA todavía funciona, tal como se esperaba.

broc.seib
fuente
3
La tecla y no hace nada por mí. ¿Ha sido cambiado esto? Probar desde el canal de Google Chrome Dev.
k0pernikus
44
Todavía funciona ... Los documentos todavía dicen que use la yclave también ... help.github.com/articles/getting-permanent-links-to-files
broc.seib
2
¡ese cambio + clic en la segunda línea para un bloque es bueno! Estaba editando manualmente la URL para agregar la segunda línea :). Sin embargo, ¿qué sucede si quisiera que se resaltaran las líneas 2, 4 y de 17 a 22? ¿Es eso posible o solo puedo resaltar un bloque a la vez?
inclinación
3
@ tr3buchet Acabo de pinchar el soporte de github, no es posible en este momento. Dijeron que considerarán la característica, pero no promesas. Ofrecí que el formato sea algo así L18-L20,L29, y que una persona podría hacer CTRLclic para agregar líneas no consecutivas. Creo que su idea es una gran sugerencia y sería muy útil.
broc.seib
2
¿Y si READMEes así README.md?
zwcloud
56

@ broc.seib tiene una respuesta sofisticada , solo quiero señalar que en lugar de presionar ypara obtener el enlace permanente, github ahora tiene una interfaz de usuario muy simple que lo ayuda a lograrlo

  1. Seleccione la línea haciendo clic en el número de línea o seleccione varias líneas manteniendo presionada shift(igual que cómo selecciona varias carpetas en el explorador de archivos) ingrese la descripción de la imagen aquí

  2. en la esquina derecha de la primera línea que seleccionó, expanda ...y haga cliccopy permalink ingrese la descripción de la imagen aquí

  3. eso es todo, un enlace con líneas seleccionadas y commit hash se copia en su portapapeles : https://github.com/python/cpython/blob/c82b7f332aff606af6c9c163da75f1e86514125e/Doc/Makefile#L1-L4
watashiSHUN
fuente
18

Haga clic en el número de línea y luego copie y pegue el enlace desde la barra de direcciones. Para seleccionar un rango, haga clic en el número y luego presione Mayús y haga clic en el número posterior.

Alternativamente, los enlaces son un formato relativamente simple, solo agregue #L<number>al final ese número de línea específico, usando el enlace al archivo. Aquí hay un enlace a la tercera línea del gitrepositorio README:

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

Captura de pantalla con la línea resaltada y la línea de dirección modificada

Leigh
fuente
3
¡No olvide que si el archivo cambia, esta URL seguirá apuntando a la línea 3, que podría contener un nuevo código, y puede no ser lo que deseaba! He ofrecido otra solución que produce un enlace permanente. Sugerencia: solo presione y. ;-)
broc.seib
44
El enlace está roto
pmrotule
12

un enlace permanente a un fragmento de código se pega en un campo de comentario de solicitud de extracción

Puede usar enlaces permanentes para incluir fragmentos de código en problemas, relaciones públicas, etc.

Referencias

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

Gayan Weerakutti
fuente
2
Bastante lindo gif!
Giovanni Benussi
Perdón por el tema, pero ¿qué herramienta utilizas para hacerlo?
Giovanni Benussi
@GiovanniBenussi Es de GitHub. Ver el enlace.
Gayan Weerakutti
Quiero decir para el gif :-P jajaja
Giovanni Benussi
1
@GiovanniBenussi No sé qué reversible utilizaba, pero ocasionalmente hago gifs como este usando una herramienta agradable llamada "screentogif", deberías probarlo github.com/NickeManarin/ScreenToGif
SamGamgee
6

Muchos editores (pero también vea la sección de Comandos a continuación) admiten enlaces al número de línea o rango de un archivo en GitHub o BitBucket (u otros). Aquí hay una breve lista:

Átomo

Abrir en GitHub

Emacs

git-link

Texto sublime

GitLink

Empuje

gitlink-vim


Comandos

  • git-link : subcomando Git para obtener un enlace de navegador de repositorio a un objeto git
  • ghwd : abre la URL de github que coincide con la rama y el directorio de trabajo actuales de su shell
DBagBaggerWithSwagger
fuente
0

Relacionado con cómo vincular a README.mdun repositorio de GitHub con un número de línea específico de código

Tienes tres casos:

  1. Podemos vincular a ( confirmación personalizada )

    Pero Link SIEMPRE enlazará con la versión del archivo anterior, que NO contendrá nuevas actualizaciones en la rama maestra, por ejemplo. Ejemplo:

    https://github.com/username/projectname/blob/b8d94367354011a0470f1b73c8f135f095e28dd4/file.txt#L10
    
  2. Podemos vincular a ( rama personalizada ) como (rama maestra). Pero el enlace SIEMPRE enlazará con la última versión del archivo que contendrá nuevas actualizaciones. Debido a nuevas actualizaciones, el enlace puede apuntar a un número de línea comercial no válido. Ejemplo:

    https://github.com/username/projectname/blob/master/file.txt#L10
    
  3. GitHub NO puede hacer AUTO-link a ningún archivo, ya sea (commit personalizado) ni (master-branch) debido a los siguientes problemas comerciales:

    • significado del negocio de línea , para vincularlo en el nuevo archivo
    • longitud del código resaltado objetivo que se puede cambiar
ahmednabil88
fuente
0

Para una línea en una solicitud de extracción.

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

Esto lo llevará a una línea siempre que L y R sean correctos. No estoy seguro de si hay una manera de visitar L OR RIe Si el RP agrega una línea que debe usar R. Si elimina una línea, debe usarla L.

De: generar URL de puntero de línea en solicitud de extracción de Github

vaughan
fuente