請指定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'組合。 –
解釋問題中的用例。 –