Отсутствие ссылок / заметок при загрузке в 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 = линии, как вам нравится, на расстоянии).

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