克隆时获取git笔记

Zit*_*rax 8 git git-notes

我知道克隆后可以使用以下方式获取git note:

git fetch origin refs/notes/*:refs/notes/*
Run Code Online (Sandbox Code Playgroud)

甚至可以在git config中进行设置以始终获取。

但是,在克隆时,我没有得到注释,因此我必须先克隆然后提取。尽管我确实看到--mirror在克隆时使用确实也会得到注释。但是,我的最佳设置是无需克隆就可以克隆任何存储库(因为这意味着--bare并且还会获取其他不需要的引用)并获得注释。

有什么方法可以设置例如git config来在克隆时获取特定的其他引用?

tor*_*rek 9

简短的回答是“否”:在克隆时,您可以选择使用默认的 refspec ( +refs/heads/*:refs/remotes/$remote/*,其中$remote替换origin为您选择的远程名称) 或使用--mirrorfetch-mirror refspec ( +refs/*:refs/*)进行克隆。正如您所注意到的,--mirror暗示--bare,并且在这里可能是不可取的。

编写一个执行克隆、执行git config --add remote.origin.fetch "+refs/notes/*:refs/notes/*"、然后运行的 shell 脚本是很容易的git fetch,这样您就不需要自己运行三个命令。(您是否想要+here 和/或将他们的注释重命名为其他参考名称,取决于您。对于 FreeBSD 存储库,我使用fetch = +refs/notes/*:refs/notes/origin/*并设置了notesRef = refs/notes/origin/commits,这是我从其他地方复制的做法,没有考虑太多 - 所以到目前为止,我没有理由重新考虑或改变它。)

  • @CraigRinger 我从未来(2020)给你写信,但仍然没有 `git clone --with-notes` :( (3认同)