请指定gerrit使用的refname,克隆后缺少的名称。而只需git clone --origin <gerrit-suitable-origin-name>
解决问题?
现在的长版。你的问题可能是两个问题的结合。为什么git init
,git remote add
和git fetch
这是有利的,为什么在最初克隆存储库时没有办法方便地过滤refspecs?
refspecs - 克隆初始化回购后,该命令的远程的Refspec行为是默认的部分添加到概述获取规格的的.gitconfig:
[remote "origin"]
url = ssh://host/your.git
fetch = +refs/heads/*:refs/remotes/origin/*
这些都是很好的和理智默认值,并且提供的refspecs用于从远程获取所有内容。如果您需要更改refspecs,只需编辑文件即可手动完成。例如,
[remote "origin"]
url = ssh://host/your.git
fetch = +refs/heads/atari:refs/remotes/origin/atari
fetch = +refs/heads/vertigo:refs/remotes/origin/vertigo
编辑后,取将只涉及从原点远程的atari
和vertigo
分支机构,例如通常存在master
,有可能在遥控器上存在被忽略所有其他部门一起。这当然类似于在命令行上提供git fetch
的refspecs的选项。
总体而言,它并不是一个简单的设计,它可以在git clone
命令行上支持多个初始参考,仅用于将它们放置在.gitconfig中。通过在.gitconfig文件上运行git clone
,然后sed
,您甚至可以编写相同的脚本。当克隆给出许多可能的参考规格时,决定哪个是最初的分支结账也是有问题的。
初始化过克隆 - 假设我们避免讨论更先进的git clone
设置,如利用--reference
,浅深度--depth
,或创建裸回购,区分初始化加取和克隆是您非常轻微日常生活。
普通克隆只是复制一个现有的存储库,并将设置“origin”作为创建源的远程设备。这带来一些轻微的烦恼 - “原点”远程被强制在你身上,远程追踪分支被创建,初始分支被设置,HEAD被检出。但是,如果你从git init
开始,你的控制力就会稍微好一些。您可以开始手动添加遥控器并获取特定的分支而不检查任何东西。
请注意,git clone
行为的许多方面可以通过命令行开关控制 - 所以也许开发人员更喜欢git init
只是不知道他们?问题中没有足够的信息来决定。与其他选项相比,git clone
为您节省了一些打字费用,避免了宇宙的热量死亡,并设置了合理的上游默认值 - 例如掌握跟踪分支。我投票赞成克隆。
答案可能取决于人们为什么选择'git clone''git init && git fetch'组合。 –
解释问题中的用例。 –