Извлекать 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
- практика, которую я скопировал из других источников, не слишком задумываясь об этом - и до сих пор у меня не было причин переосмысливать или изменять ее.)