Ответы:
Не просто ссылки на номера строк! Обязательно используйте канонический URL тоже. В противном случае, когда этот файл будет обновлен, у вас будет URL, указывающий на неправильные строки!
Как сделать постоянную ссылку на нужные строки:
Нажмите на нужный номер строки (например, строку 18), и URL в вашем браузере будет #L18
прикреплен к концу. Вы буквально нажимаете на 18
левую сторону, а не на строку кода. Выглядит так:
И теперь URL вашего браузера выглядит так:
https://github.com/git/git/blob/master/README#L18
Если вы хотите выбрать несколько строк, просто нажмите и удерживайте клавишу Shift и щелкните номер второй строки, например, строку 20. Выглядит так:
И теперь 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 теперь облегчает получение постоянной ссылки, предоставляя ...
меню слева после выбора одной или нескольких строк. Пожалуйста, ответьте upvote @ watashiSHUN тоже.
обновление от 25.03.2016: Пример - в приведенном выше примере я ссылался на файл «README» в URL. Эти неканонические URL действительно работали, когда был написан этот ответ. Но теперь эти URL больше не работают, так как README
были перемещены в README.md
. Но канонический URL с хешем SHA все еще работает, как и ожидалось.
y
ключ тоже ... help.github.com/articles/getting-permanent-links-to-files
L18-L20,L29
, и чтобы человек мог CTRL
щелкнуть, чтобы добавить непоследовательные строки. Я думаю, что ваша идея является отличным предложением и будет очень полезна.
README
есть README.md
?
У @ broc.seib есть сложный ответ , я просто хочу отметить, что вместо того, y
чтобы нажимать, чтобы получить постоянную ссылку, у github теперь есть очень простой пользовательский интерфейс, который помогает вам достичь этого.
Выберите строку, щелкнув по номеру строки, или выберите несколько строк, нажав вниз shift
(так же, как при выборе нескольких папок в проводнике)
в правом углу первой выбранной строки разверните ...
и нажмитеcopy permalink
https://github.com/python/cpython/blob/c82b7f332aff606af6c9c163da75f1e86514125e/Doc/Makefile#L1-L4
Нажмите на номер строки, а затем скопируйте и вставьте ссылку из адресной строки. Чтобы выбрать диапазон, щелкните по номеру, а затем нажмите Shift, чтобы перейти к следующему номеру.
Кроме того, ссылки представляют собой относительно простой формат, просто добавьте #L<number>
в конец для этого конкретного номера строки, используя ссылку на файл. Вот ссылка на третью строку git
репозитория README
:
y
. ;-)
Вы можете использовать постоянные ссылки для включения фрагментов кода в выпуски, PR и т. Д.
Ссылки:
https://help.github.com/en/articles/creating-a-permanent-link-to-a-code-snippet
Многие редакторы (но также см. Раздел « Команды » ниже) поддерживают привязку к номеру строки или диапазону файла в GitHub или BitBucket (или других). Вот краткий список:
Связано с тем, как связать README.md
репозиторий GitHub с определенным номером строки кода
У вас есть три случая:
Мы можем ссылаться на (пользовательский коммит )
Но ссылка ВСЕГДА будет ссылаться на старую версию файла, которая, например, НЕ содержит новых обновлений в основной ветке. Пример:
https://github.com/username/projectname/blob/b8d94367354011a0470f1b73c8f135f095e28dd4/file.txt#L10
Мы можем ссылаться на (пользовательская ветвь ), как (master-ветка). Но ссылка ВСЕГДА будет ссылаться на последнюю версию файла, которая будет содержать новые обновления. Из-за новых обновлений ссылка может указывать на неверный номер бизнес-линии. Пример:
https://github.com/username/projectname/blob/master/file.txt#L10
GitHub НЕ МОЖЕТ делать AUTO-ссылки на какие-либо файлы ни в (пользовательский коммит), ни в (master-branch) из-за следующих бизнес-проблем:
Для строки в запросе 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
Это приведет вас к линии, если L и R верны. Я не уверен, есть ли способ посетить L ИЛИ RIe. Если PR добавляет строку, которую вы должны использовать R
. Если он удаляет строку, которую вы должны использовать L
.