Отсутствие ссылок / заметок при загрузке в git
У меня есть ситуация, когда я пытаюсь получить удаленные git заметки, используя следующие:
git fetch origin refs/notes/*:refs/notes/*
На новом клоне репозитория это работает правильно. Это тянет вниз 2 пространства имен примечания:
> git fetch origin refs/notes/"*":refs/notes/"*" <system> <dev>
From ssh://url/android-client
* [new ref] refs/notes/git-ratchet-1-3.2 -> refs/notes/git-ratchet-1-test
* [new ref] refs/notes/git-ratchet-1-dev -> refs/notes/git-ratchet-1-test2
Однако в моем текущем репозитории проекта, когда я делаю эту выборку, я получаю только одну из ссылок. Если я вручную удаляю файл в .git/refs/notes/git-ratchet-1-test
и попробуйте загрузить снова, я опускаю этот файл / ref.
Почему я не сносить другой /refs/notes/git-ratchet-1-test2
?
1 ответ
Ключ к этому здесь:
Если я вручную удаляю файл в.git/refs/notes/git-ratchet-1-test и пытаюсь извлечь его снова...
Вы вручную предоставляете refspec, refs/notes/*:refs/notes/*
, Это "не принудительная" ссылка, означающая: "если у меня уже есть ссылка, не обновляйте мою, сохраните мою существующую ссылку".
Чтобы сделать это обязательной для обновления refspec, добавьте +
спереди.
Если вы хотите, чтобы заметки были извлечены (принудительно или нет), обновите git config
для этого пульта, чтобы добавить этот refspec к fetch
задавать. Например, вместо:
[remote "origin"]
url = git://git.kernel.org/pub/scm/git/git.git
fetch = +refs/heads/*:refs/remotes/origin/*
Вы могли бы сделать это читать:
[remote "origin"]
url = git://git.kernel.org/pub/scm/git/git.git
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = +refs/notes/*:refs/notes/*
(у вас может быть столько fetch =
линии, как вам нравится, на расстоянии).