Как показать удаленные ссылки / заметки / * с git log - PullRequest
0 голосов
/ 27 апреля 2018

Как показать refs/notes в выводе git log --oneline --graph --all --decorate для пультов?

С помощью приведенной выше команды я вижу только свой refs/notes/foobar, но не удаленный код.

Документы не намекают на какую-либо команду, которую я мог бы использовать для этого.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Прежде всего, чтобы объяснить, что такое git notes.

git commit

Как вы знаете каждый раз, когда вы commit пишете код для git, git записывает текущий снимок файлов, а объект фиксации сохраняет дерево и любую другую дополнительную информацию в качестве метаданных фиксации. Эти метаданные затем передаются в sha1sum, и мы получаем идентификатор фиксации.

enter image description here

Если позже мы попытаемся изменить коммит git commit --amend, sha-1 будет обновлен, как мы увидим ниже. Содержание то же самое, но SAH-1 отличается.

enter image description here


git notes

Как объяснено выше, любые изменения, сделанные в commit, влияют на SHA-1, и именно здесь появляются примечания git.

git notes позволяют нам добавлять контент для фиксации, не затрагивая SHA-1 коммита, то есть мы можем прикреплять контент к коммиту, оставляя SHA-1 неизмененным.

enter image description here

Как вы можете видеть, git notes не является частью содержимого фиксации и, как и любой другой контент фиксации, хранится в папке .git (локально в папке refs/notes/).

Чтобы получать заметки с сервера, вы должны извлекать их, как и любой другой git-контент.

Как получить заметки?

Для извлечения заметок используйте следующую команду извлечения со следующей ссылкой:

# manually fetch the notes
git fetch origin refs/notes/*:refs/notes/*

# add configuration to auto-fetch the notes every time you execute a simple
# fetch. This will result in fetching the notes every time you fetch the remote.
git config --add remote.origin.fetch +refs/notes/*:refs/notes/*
0 голосов
/ 27 апреля 2018

ОБНОВЛЕНИЕ - так как комментарии показывают, что это очевидно неясно, я выделил, где я ответил на вопрос.


Как и большинство команд git, git log работает в локальном репо. Чтобы увидеть заметки, которые находятся на пульте, вам нужно их извлечь.

Вы можете сделать это вручную, сказав

git fetch origin refs/notes/*:refs/notes/*

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

...