Como vincular a um número de linha específico no github

371

Eu sei que posso vincular a um número de linha específico em um arquivo em um repositório do github (tenho certeza que já vi isso antes) ...

Alguém pode me dizer como fazer isso?

sfletche
fonte

Respostas:

587

Não basta ligar para os números de linha! Certifique-se de usar o URL canônico também. Caso contrário, quando esse arquivo for atualizado, você terá um URL que aponta para as linhas erradas!

Como criar um link permanente para as linhas corretas:

Clique no número da linha que você deseja (como a linha 18) e o URL no seu navegador será #L18pregado no final. Você literalmente clica no 18lado esquerdo, não na linha de código. Se parece com isso:

linha 18 selecionada

E agora o URL do seu navegador fica assim:

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

Se você deseja selecionar várias linhas, basta manter pressionada a tecla Shift e clicar no número da segunda linha, como a linha 20. É assim:

insira a descrição da imagem aqui

E agora o URL do seu navegador fica assim:

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

Aqui está a parte importante:

Agora obtenha o URL canônico para esse commit específico pressionando a ytecla O URL no seu navegador mudará para se tornar algo como isto:

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

Esse link contém o hash SHA real para essa confirmação específica, em vez da versão atual do arquivo master. Isso significa que esse link funcionará para sempre e não apontará para as linhas 18 a 20 de qualquer versão futura desse arquivo.

Agora aproveite o brilho do seu novo link permanente. ;-)

atualização 29/09/2017: Conforme apontado por @watashiSHUN, o github agora tornou mais fácil obter o link permanente fornecendo um ...menu à esquerda após a seleção de uma ou mais linhas. Por favor, vote também na resposta de @ watashiSHUN .

Menu permanente do GitHub

atualização 25/03/2016: caso em questão - no exemplo acima, me referi ao arquivo "README" no URL. Esses URLs não canônicos realmente funcionaram quando esta resposta foi escrita. Mas agora esses URLs não funcionam mais desde que READMEforam movidos README.md. Mas a URL canônica com o hash SHA ainda funciona, conforme o esperado.

broc.seib
fonte
3
A tecla y não faz nada para mim. Isso foi alterado? Tentando no Canal do desenvolvedor do Google Chrome.
K0pernikus
4
Ele ainda funciona ... Os documentos ainda dizem que usam a ychave também ... help.github.com/articles/getting-permanent-links-to-files
broc.seib
2
esse turno + clique na segunda linha de um bloco é bom! Eu estava editando manualmente o URL para adicionar a segunda linha :). pergunta de acompanhamento, e se eu quisesse as linhas 2, 4 e 17-22 destacadas? Isso é possível ou posso destacar apenas um bloco de cada vez?
propensão
3
@ tr3buchet Acabei de executar ping no suporte do github - não é possível no momento. Eles disseram que vão considerar o recurso, mas não promessas. Ofereci que o formato fosse algo parecido L18-L20,L29e que uma pessoa pudesse CTRLclicar para adicionar linhas não consecutivas. Eu acho que sua ideia é uma ótima sugestão e seria muito útil.
Broc.seib
2
E se READMEfor README.md?
Zwcloud
56

O @ broc.seib tem uma resposta sofisticada , só quero salientar que, em vez de pressionar ypara obter o link permanente, o github agora tem uma interface muito simples que ajuda você a alcançá-lo

  1. Selecione a linha clicando no número da linha ou selecione várias linhas descendo shift(o mesmo que você seleciona várias pastas no explorador de arquivos) insira a descrição da imagem aqui

  2. no canto direito da primeira linha selecionada, expanda ...e clique emcopy permalink insira a descrição da imagem aqui

  3. é isso, um link com as linhas selecionadas e o hash de confirmação é copiado para a área de transferência : https://github.com/python/cpython/blob/c82b7f332aff606af6c9c163da75f1e86514125e/Doc/Makefile#L1-L4
watashiSHUN
fonte
18

Clique no número da linha e copie e cole o link na barra de endereços. Para selecionar um intervalo, clique no número e, em seguida, clique com a tecla Shift pressionada no número posterior.

Como alternativa, os links são um formato relativamente simples, basta anexar #L<number>ao final o número de linha específico, usando o link para o arquivo. Aqui está um link para a terceira linha do gitrepositório README:

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

Captura de tela com a linha destacada e a linha de endereço modificada

Leigh
fonte
3
Não esqueça que, se o arquivo for alterado, esse URL ainda apontará para a linha 3, que pode conter um novo código e pode não ser o que você queria! Eu ofereci outra solução que gera um link permanente. Dica: basta pressionar y. ;-)
broc.seib
4
O link está quebrado
pmrotule
12

um link permanente para um snippet de código é colado em um campo de comentário de solicitação de recebimento

Você pode usar permalinks para incluir trechos de código em problemas, PRs etc.

Referências:

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

Gayan Weerakutti
fonte
2
Muito bom gif!
Giovanni Benussi
Desculpe o tópico fora do tópico, mas que ferramenta você usa para fazer isso?
Giovanni Benussi
@GiovanniBenussi É do GitHub. Veja o link.
Gayan Weerakutti
Quero dizer, para o gif :-P hahaha
Giovanni Benussi 13/06
11
@GiovanniBenussi Eu não sei o que reversiblean usado, mas ocasionalmente eu fazer gifs como este usando uma boa ferramenta chamada "screentogif", você deve experimentá-lo github.com/NickeManarin/ScreenToGif
SamGamgee
6

Muitos editores (mas também a seção Comandos abaixo) suportam links para o número da linha ou intervalo de um arquivo no GitHub ou BitBucket (ou outros). Aqui está uma pequena lista:

Átomo

Abrir no GitHub

Emacs

git-link

Texto sublime

GitLink

Vim

gitlink-vim


Comandos

  • git-link - subcomando Git para obter um link de repo-browser para um objeto git
  • ghwd - Abra o URL do github que corresponde ao ramo e diretório de trabalho atual do seu shell
DBagBaggerWithSwagger
fonte
0

Relacionado a como vincular o README.mdrepositório GitHub a um número de linha específico de código

Você tem três casos:

  1. Podemos vincular a ( confirmação personalizada )

    Mas o Link SEMPRE vinculará à versão antiga do arquivo, que NÃO contém novas atualizações na ramificação principal, por exemplo. Exemplo:

    https://github.com/username/projectname/blob/b8d94367354011a0470f1b73c8f135f095e28dd4/file.txt#L10
    
  2. Podemos vincular a ( filial personalizada ) como (filial principal). Mas o link SEMPRE vinculará à versão mais recente do arquivo que conterá novas atualizações. Devido a novas atualizações, o link pode apontar para um número de linha comercial inválido. Exemplo:

    https://github.com/username/projectname/blob/master/file.txt#L10
    
  3. O GitHub NÃO pode vincular automaticamente a qualquer arquivo para (confirmação personalizada) nem (ramificação mestre) devido aos seguintes problemas de negócios:

    • significado comercial da linha , para vincular a ele no novo arquivo
    • comprimento do código destacado de destino que pode ser alterado
ahmednabil88
fonte
0

Para uma linha em uma solicitação 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

Isso o levará a uma linha, desde que L e R estejam corretos. Não tenho certeza se existe uma maneira de visitar L OR RIe Se o PR adicionar uma linha que você deve usar R. Se ele remover uma linha, você deverá usar L.

De: gerar URL do ponteiro de linha no Github Pull Request

vaughan
fonte