Как подключиться к определенному номеру строки на github

Я знаю, что могу ссылаться на определенный номер строки в файле в репозитории github (я уверен, что видел это раньше)...

Может кто-нибудь сказать мне, как это сделать?

Ответ 1

Не просто ссылки на номера строк! Обязательно используйте канонический URL тоже. В противном случае, когда этот файл будет обновлен, у вас будет URL, указывающий на неправильные строки!

Как сделать постоянную ссылку на нужные строки:

Щелкните по нужному номеру строки (например, строке 18), и URL в вашем браузере будет прикреплен к концу #L18. Вы буквально нажимаете на 18 слева, а не на строку кода. Выглядит так:

line 18 selected

И теперь URL вашего браузера выглядит так:

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

Если вы хотите выбрать несколько строк, просто нажмите и удерживайте клавишу Shift и щелкните номер второй строки, например, строку 20. Выглядит так:

enter image description here

И теперь URL вашего браузера выглядит так:

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

Здесь важная часть:

Теперь получите канонический URL для этого конкретного коммита, нажав клавишу y. URL в вашем браузере изменится и станет примерно таким:

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

Эта ссылка содержит фактический хэш SHA для этого конкретного коммита, а не текущую версию файла на master. Это означает, что эта ссылка будет работать вечно и не будет указывать на строки 18-20 любой будущей версии этого файла.

Теперь грейтесь в лучах вашей новой постоянной ссылки. ;-)

обновление от 29.09.2017: Как отмечает @watashiSHUN, теперь с помощью github стало проще получить постоянную ссылку, предоставив ... меню слева после выбора одной или нескольких строк. Пожалуйста, ответьте на ответ @watashiSHUN.

GitHub permalink menu

обновление от 25.03.2016: Пример - в приведенном выше примере я ссылался на файл "README" в URL. Эти неканонические URL действительно работали, когда был написан этот ответ. Но теперь эти URL больше не работают, так как README был перемещен в README.md. Но канонический URL с хешем SHA все еще работает, как и ожидалось.

Ответ 2

У @broc.seib есть изощренный ответ, я просто хочу отметить, что вместо нажатия y чтобы получить постоянную ссылку, у github теперь есть очень простой пользовательский интерфейс, который помогает вам достичь этого.

  1. Выберите строку, щелкнув по номеру строки, или выберите несколько строк, удерживая клавишу shift (так же, как вы выбираете несколько папок в проводнике) enter image description here

  2. в правом углу первой строки, которую вы выбрали, разверните ... и нажмите Скопировать copy permalink enter image description here

  3. что это, ссылка с выбранными строками и хешем коммитов копируется в ваш буфер обмена: https://github.com/python/cpython/blob/c82b7f332aff606af6c9c163da75f1e86514125e/Doc/Makefile#L1-L4

Ответ 3

Щелкните номер строки, а затем скопируйте и вставьте ссылку из адресной строки. Чтобы выбрать диапазон, щелкните номер, а затем сдвиньте его на более поздний номер.

В качестве альтернативы, ссылки являются относительно простым форматом, просто добавьте #L<number> в конец для этого номера конкретной линии, используя ссылку на файл. Здесь ссылка на третью строку репозитория git README:

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

Screenshot with highlighted line and the modified address line

Ответ 5

Многие редакторы (но также см. Раздел "Команды" ниже) поддерживают привязку к номеру строки или диапазону файлов в GitHub или BitBucket (или других). Вот краткий список:

Атом

Открыть на GitHub

Emacs

ГИТ-ссылка

Возвышенный текст

GitLink

напор

gitlink-ВИМ


команды

  • git-link - подкоманда Git для получения ссылки браузера-репозитория на объект git
  • ghwd - открывает URL-адрес github, соответствующий текущей ветке оболочки и рабочему каталогу.

Ответ 6

README.md к тому, как связать README.md репозитория GitHub с определенным номером строки кода

У вас есть три случая:

  1. Мы можем ссылаться на (пользовательский коммит)

    Но ссылка ВСЕГДА будет ссылаться на старую версию файла, которая, например, НЕ содержит новых обновлений в основной ветке. Пример:

    https://github.com/username/projectname/blob/b8d94367354011a0470f1b73c8f135f095e28dd4/file.txt#L10
    
  2. Мы можем ссылаться на (пользовательская ветвь), как (master-ветка). Но ссылка ВСЕГДА будет ссылаться на последнюю версию файла, которая будет содержать новые обновления. Из-за новых обновлений ссылка может указывать на неверный номер бизнес-линии. Пример:

    https://github.com/username/projectname/blob/master/file.txt#L10
    
  3. GitHub НЕ МОЖЕТ делать AUTO-ссылки на какие-либо файлы ни в (пользовательский коммит), ни (в основной ветке) из-за следующих бизнес-проблем:

    • смысл бизнес- строки, ссылка на него в новом файле
    • длина целевого выделенного кода, который можно изменить