在git中获取时缺少引用/注释

时间:2015-10-08 19:55:50

标签: git git-notes

我遇到的情况是我尝试使用以下方法获取远程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中的文件并再次尝试抓取,我会下拉该文件/参考。

为什么我不拉下另一个/refs/notes/git-ratchet-1-test2

1 个答案:

答案 0 :(得分:1)

关键在于:

  

如果我手动删除.git / refs / notes / git-ratchet-1-test中的文件并再次尝试抓取...

您手动提供refspec refs/notes/*:refs/notes/*。这是一种非力量的&#34; refspec,意思是:&#34;如果我已经有一个参考,不要更新我的,请保留我现有的参考资料。

要将此更新为强制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 =行。