Jak połączyć z określonym numerem linii na github

371

Wiem, że mogę połączyć się z określonym numerem wiersza w pliku na repozytorium github (jestem pewien, że już to widziałem) ...

Czy ktoś może mi powiedzieć, jak to zrobić?

sfletche
źródło

Odpowiedzi:

587

Nie tylko link do numerów linii! Pamiętaj, aby użyć również kanonicznego adresu URL . W przeciwnym razie po zaktualizowaniu tego pliku otrzymasz adres URL wskazujący niewłaściwe linie!

Jak zrobić stały link do odpowiednich linii:

Kliknij żądany numer linii (jak wiersz 18), a adres URL w przeglądarce zostanie #L18dodany do końca. Dosłownie klikasz po 18lewej stronie, a nie linii kodu. Wygląda tak:

wybrano linię 18

A teraz URL twojej przeglądarki wygląda następująco:

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

Jeśli chcesz zaznaczyć wiele linii, po prostu przytrzymaj klawisz Shift i kliknij drugi numer linii, na przykład linię 20. Wygląda to tak:

wprowadź opis zdjęcia tutaj

A teraz URL twojej przeglądarki wygląda następująco:

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

Oto ważna część:

Teraz uzyskaj kanoniczny adres URL dla tego konkretnego zatwierdzenia, naciskając yklawisz. Adres URL w przeglądarce zmieni się i stanie się mniej więcej taki:

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

Ten link zawiera rzeczywistą wartość skrótu SHA dla tego konkretnego zatwierdzenia, a nie bieżącą wersję pliku master. Oznacza to, że ten link będzie działał wiecznie i nie będzie wskazywał wierszy 18-20 jakiejkolwiek przyszłej wersji tego pliku.

Teraz ciesz się blaskiem swojego nowego stałego łącza. ;-)

aktualizacja 29.09.2017: Jak zauważył @watashiSHUN, github ułatwił uzyskanie stałego linku, udostępniając ...menu po lewej stronie po wybraniu jednej lub więcej linii. Proszę również głosować na odpowiedź @ watashiSHUN .

Menu bezpośredniego łącza GitHub

aktualizacja 25.03.2016: Przypadek - w powyższym przykładzie odniosłem się do pliku „README” w adresie URL. Te niekanoniczne adresy URL faktycznie działały, gdy napisano tę odpowiedź. Ale teraz te adresy URL już nie działają, ponieważ READMEzostały przeniesione do README.md. Ale kanoniczny adres URL z skrótem SHA nadal działa, zgodnie z oczekiwaniami.

broc.seib
źródło
3
Klawisz Y nic dla mnie nie robi. Czy to się zmieniło? Próbuję z Google Chrome Dev Channel.
k0pernikus,
4
Nadal działa ... Dokumenty nadal mówią, że też używają yklucza ... help.github.com/articles/getting-permanent-links-to-files
broc.seib
2
to przesunięcie + kliknięcie drugiej linii bloku jest dobre! Ręcznie edytowałem adres URL, aby dodać drugi wiersz :). odpowiedź na pytanie, co jeśli chciałbym wyróżnić linie 2, 4 i 17-22? Czy to możliwe, czy mogę wyróżnić tylko jeden blok na raz?
skłonność do
3
@ tr3buchet Właśnie wysłałem ping do obsługi github - w tej chwili nie jest to możliwe. Powiedzieli, że rozważą tę funkcję, ale bez obietnic. Zaproponowałem, że format będzie podobny do tego L18-L20,L29, i że osoba może CTRL-kliknij, aby dodać niesekwencyjne wiersze. Myślę, że twój pomysł jest świetną sugestią i byłby bardzo przydatny.
broc.seib,
2
Co jeśli READMEjest README.md?
zwcloud
56

@ broc.seib ma wyrafinowaną odpowiedź , chcę tylko zauważyć , że zamiast naciskać, yaby uzyskać stały link, github ma teraz bardzo prosty interfejs, który pomaga ci to osiągnąć

  1. Wybierz linię, klikając numer linii lub wybierz wiele linii zmniejszając shift(tak samo, jak wybierasz wiele folderów w eksploratorze plików) wprowadź opis zdjęcia tutaj

  2. w prawym rogu pierwszej wybranej linii rozwiń ...i kliknijcopy permalink wprowadź opis zdjęcia tutaj

  3. to wszystko, link do wybranych linii i skrótu zatwierdzenia jest kopiowany do schowka : https://github.com/python/cpython/blob/c82b7f332aff606af6c9c163da75f1e86514125e/Doc/Makefile#L1-L4
watashiSHUN
źródło
18

Kliknij numer linii, a następnie skopiuj i wklej link z paska adresu. Aby wybrać zakres, kliknij numer, a następnie kliknij klawisz Shift późniejszy numer.

Alternatywnie, linki są stosunkowo prostym formatem, wystarczy dołączyć #L<number>na końcu tego konkretnego numeru linii, używając linku do pliku. Oto link do trzeciego wiersza gitrepozytoriumREADME :

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

Zrzut ekranu z podświetloną linią i zmodyfikowaną linią adresu

Leigh
źródło
3
Nie zapominaj, że jeśli plik się zmieni, ten adres URL nadal będzie wskazywał na linię 3, która może zawierać nowy kod i może nie być tym, czego chciałeś! Zaproponowałem inne rozwiązanie, które daje stały link. Wskazówka: wystarczy nacisnąć y. ;-)
broc.seib
4
Link jest zerwany
pmrotule
12

bezpośredni link do fragmentu kodu jest wklejany do pola komentarza żądania ściągnięcia

Możesz użyć permalinków, aby dołączyć fragmenty kodu do problemów, PR itp.

Bibliografia:

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

Gayan Weerakutti
źródło
2
Całkiem niezły gif!
Giovanni Benussi
Przepraszam za nie na temat, ale jakiego narzędzia używasz, aby to zrobić?
Giovanni Benussi
@GiovanniBenussi To jest z GitHub. Zobacz link.
Gayan Weerakutti
Mam na myśli gif :-P hahaha
Giovanni Benussi
1
@GiovanniBenussi Nie wiem, czego używał reversiblean, ale od czasu do czasu robię takie gify za pomocą ładnego narzędzia o nazwie „screentogif”, powinieneś wypróbować github.com/NickeManarin/ScreenToGif
SamGamgee
6

Wielu redaktorów (ale także zobacz Polecenia poniżej) obsługuje linkowanie do numeru linii lub zakresu pliku w GitHub lub BitBucket (lub innych). Oto krótka lista:

Atom

Otwórz w GitHub

Emacs

git-link

Wzniosły tekst

GitLink

Wigor

gitlink-vim


Polecenia

  • git-link - podkomenda Git do pobierania linku przeglądarki repo do obiektu git
  • ghwd - Otwórz adres URL github, który pasuje do bieżącego oddziału i katalogu roboczego twojej powłoki
DBagBaggerWithSwagger
źródło
0

Powiązane z tym, jak połączyć się README.mdz repozytorium GitHub z określonym numerem wiersza kodu

Masz trzy przypadki:

  1. Możemy link do (niestandardowe zatwierdzenie )

    Ale Link będzie ZAWSZE link do starej wersji pliku, która NIE zawiera na przykład nowych aktualizacji w gałęzi master. Przykład:

    https://github.com/username/projectname/blob/b8d94367354011a0470f1b73c8f135f095e28dd4/file.txt#L10
    
  2. Możemy połączyć się z ( gałąź niestandardowa ) jak (gałąź główna). Ale link ZAWSZE będzie prowadzić do najnowszej wersji pliku, która będzie zawierać nowe aktualizacje. Z powodu nowych aktualizacji link może wskazywać nieprawidłowy numer linii biznesowej. Przykład:

    https://github.com/username/projectname/blob/master/file.txt#L10
    
  3. GitHub NIE może wykonać AUTO-link do żadnego pliku ani (niestandardowe zatwierdzenie) ani (master-branch) Z powodu następujących problemów biznesowych:

    • znaczenie linii biznesowej, aby połączyć się z nim w nowym pliku
    • długość podświetlonego kodu docelowego, który można zmienić
ahmednabil88
źródło
0

Dla linii w żądaniu ściągnięcia.

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

Spowoduje to przejście do linii, o ile L i R są poprawne. Nie jestem pewien, czy można odwiedzić L LUB RIe Jeśli PR doda linię, której musisz użyć R. Jeśli usuwa linię, musisz użyć L.

Od: Wygeneruj adres URL wskaźnika linii do żądania ściągania Github

Vaughan
źródło