Как ПОСТОЯННО связать номер строки в GitHub?

Ссылка на номер строки в GitHub очень проста: нажатие на строку изменяет URL-адрес, чтобы указать на эту строку, чтобы мы могли поделиться ею.

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

Как сделать постоянную ссылку на строку кода в GitHub? Слишком часто я сталкивался со старыми ссылками, для которых изменился код.

Тем не менее, я обнаружил, что могу выбрать дифференциал коммита и ссылку на этот дифференциал вот так, здесь, на line 150 из base.py например: https://github.com/deepmind/sonnet/commit/60be2bb4ccd74230285c1c822452a99558915c50

Но я думаю, что ссылка на конкретный коммит сбивает с толку (или немного перебивает), так как коммит может вообще не касаться того, на что я хочу указать в файле.

Будет ли у кого-нибудь более чистый способ ссылки на номера строк в GitHub? (Например: указание на конкретную версию файла, а не на фиксацию будет более чистым IMO)

2 ответа

Решение

Вы можете ссылаться на дерево коммита вместо его diff, и самый простой способ получить эту ссылку - это сочетание клавиш GitHub с постоянной ссылкой: нажмите Y после нажатия на строку в дереве ветви.

Если вы хотите получить коммит вместо ветки, используйте кнопку "Обзор файлов" в заголовке.

Чтобы построить это вручную, путь:

/blob/<hash>/<path...>#L<line>

Готово с вашим примером ссылки:

https://github.com/deepmind/sonnet/blob/60be2bb4ccd74230285c1c822452a99558915c50/sonnet/python/modules/base.py

Это почти невозможно.

Самое близкое, что вы можете получить, это указать конкретную ссылку, например, нажав "Обзор файлов" из коммита:

https://github.com/deepmind/sonnet/blob/60be2bb/sonnet/python/modules/base.py

Более подходящим решением может быть ссылка на определенный тег, если он содержит ваш коммит:

https://github.com/deepmind/sonnet/blob/v1.6/sonnet/python/modules/base.py

Однако в определенных обстоятельствах вы рискуете удалить этот коммит из истории репозитория. Однако в хорошо поддерживаемом общедоступном репозитории и ссылки на коммиты, и теги должны обеспечивать подходящие ссылки.

Другие вопросы по тегам