正如我已經告訴你了評論,git clone
不會(據我所知)自動爲您在本地創建所有分支機構。 您可以使用git branch
檢查您本地存儲庫中的所有分支。
$ git branch
* master
這裏這個git倉庫只有一個分支:master分支。如果你用git clone
克隆它,它會看起來像。
如果您想檢查本地存儲庫知道存在哪些遠程分支,您可以運行git branch -a
。遠程分支將採用以下格式:
$ git branch -a
* master
remotes/origin/HEAD
remotes/origin/master
remotes/origin/other_branch
remotes/origin/branch_two
帶「remotes /」的那些是遠程存儲庫中的分支。所以在這裏你看到遠程倉庫origin
擁有3個分支(remotes/origin/<branch_name>
):master,other_branch和branch_two。 如果你希望他們在本地以及你必須創建它們,與git checkout -b
例如:
git checkout -b <new_local_branch> <remote_repository>/<remote_branch_name>
你跟在remotes/
之後的部分替代<new_local_branch>
你希望它在你的本地庫中的名稱和<remote_repository>/<remote_branch_name>
輸出爲git branch -a
。
例如創建分支other_branch
localy作爲遠程分支機構的名稱相同的副本,你只是做:
git checkout -b other_branch origin/other_branch
然後你會看到的git branch
輸出將是
$ git branch
master
* other_branch
如果你想自動執行它,你可以創建一個基於如下命令的輸出git branch -a
的命令:
git branch -a | grep "remotes/origin" | egrep -v "origin/(master|HEAD)$" | \
sed "s:remotes/\([^/]\+/\(.\+\)\)$:git checkout -b \2 \1:" | bash
這一個將在本地創建除主分支之外的所有分支。如果還有其他分支,則不需要在「()」之間的egrep的正則表達式中添加它們,用「|」分隔。
爲什麼git clone不起作用? –
@ J.Baoby。 1.我克隆到D:\項目(它已成爲git回購)。 2.當我嘗試從「D:\ project」克隆時,我沒有得到我可以在遠程看到的分支。請回復我,如果不明白我的情況 –
當我再次從我的本地回購克隆到本地我想看到所有的分支和標籤相同的遠程服務器 –