Извлекать git заметки при клонировании

Я знаю, что git notes можно получить после клонирования с помощью:

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

или даже быть настроенным в git config, чтобы его всегда загружали.

Однако во время клонирования я не получаю заметки, поэтому я должен клонировать, а затем получить. Хотя я вижу, что с помощью --mirror когда клонирование тоже получает заметки. Тем не менее, моя оптимальная установка была бы в том, что я мог бы клонировать любой репозиторий без использования зеркала (поскольку это подразумевает --bare а также получить другие нежелательные ссылки) и получить заметки тоже.

Есть ли способ настроить, например, git config для получения конкретных дополнительных ссылок во время клонирования?

1 ответ

Решение

Краткий ответ - "нет": во время клонирования вы можете выбрать клонирование со стандартным refspec (+refs/heads/*:refs/remotes/$remote/*, где $remote заменяется на origin или имя удаленного вы выбираете) или с --mirror fetch-mirror refspec (+refs/*:refs/*). Как вы заметили, --mirror подразумевает --bareи, вероятно, здесь не желательно.

Было бы достаточно легко написать сценарий оболочки, который выполняет клонирование, а затем git config --add remote.origin.fetch +refs/notes/*:refs/notes/*, затем бежит git fetch, так что вам не нужно запускать три команды самостоятельно. (Хотите ли вы + здесь, и / или переименовать их заметки в другое ссылочное имя, решать только вам. Для репозитория FreeBSD я использую fetch = +refs/notes/*:refs/notes/origin/* и установить notesRef = refs/notes/origin/commits- практика, которую я скопировал из других источников, не слишком задумываясь об этом - и до сих пор у меня не было причин переосмысливать или изменять ее.)

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