12

我知道克隆后可以使用以下命令获取 git 注释:

git fetch origin refs/notes/*:refs/notes/*

甚至在 git config 中设置为始终获取。

但是在克隆时我没有得到笔记,所以我必须克隆然后获取。虽然我确实看到--mirror在克隆时使用也会得到注释。但是,我的最佳设置是我可以克隆任何存储库而不做镜像(因为它暗示--bare并且还会获得其他不需要的参考)并获得注释。

有没有办法设置例如 git config 在克隆时获取特定的附加参考?

4

1 回答 1

9

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

git config --add remote.origin.fetch "+refs/notes/*:refs/notes/*"编写一个执行克隆、执行、然后运行的 shell 脚本很容易git fetch,因此您无需自己运行三个命令。(您是否想要+这里,和/或将他们的注释重命名为其他参考名称,取决于您。对于 FreeBSD 存储库,我使用fetch = +refs/notes/*:refs/notes/origin/*and set notesRef = refs/notes/origin/commits,这是我从别处复制的一种做法,没有过多考虑它——等等到目前为止,我没有理由重新考虑或改变它。)

于 2016-06-21T18:46:17.223 回答