我讀到this question的答案git fetch origin
應該取全部分支的原產地。但就我而言,它似乎並沒有給我任何分支。以下是我所做的:git fetch origin沒有獲取所有分支
最初,遠程被叫原點有7個分支。我克隆它。 git branch
然後只返回master
。我沒有git fetch origin
,git branch
仍然只顯示master
。我如何獲得其他6個分支而不單獨獲取它們?
我讀到this question的答案git fetch origin
應該取全部分支的原產地。但就我而言,它似乎並沒有給我任何分支。以下是我所做的:git fetch origin沒有獲取所有分支
最初,遠程被叫原點有7個分支。我克隆它。 git branch
然後只返回master
。我沒有git fetch origin
,git branch
仍然只顯示master
。我如何獲得其他6個分支而不單獨獲取它們?
您擁有全部7家分店,但git branch
只顯示當地分店。即使你現在在你的系統上有本地的分支數據,它們仍然被認爲是「遠程分支」。 你可以用git branch -a
看到它們。他們將被稱爲像remotes/origin/branchname
。你可以通過指定這個全名來檢查它們:git checkout remotes/origin/branchname
。
此外,當您克隆存儲庫時,您已經擁有了所有這些分支。運行git fetch origin
將簡單地使用自上次獲取(或克隆)以來發生的任何新事件更新您的存儲庫。
你可以閱讀更多關於git的文檔中遠程分支:Git Branching - Remote Branches
雖然這個問題被提問題的回答,這裏是實打實的:你感到困惑的原因是因爲git fetch
會告訴你它在新的遠程,但它不會顯示任何東西(git克隆)時首先克隆回購。所以克隆只創建本地主分支。因爲它默認檢查出來。檢出它會在本地創建。
所以基本上你需要做的是你在開始時指出的:單獨檢查所有分支。所以基本上你得到的是這樣的:
git branch -a | grep origin | sed "[email protected]*origin/@@" | while read f; do
git checkout $f
done
可能有更多的低層次的「管道工」命令,可以做到這一點,但基本上這是它從用戶的角度。其實,答案似乎是你可以直接創建本地分支。
git branch -a | grep origin | sed "[email protected]*origin/@@" | while read f; do
git branch $f origin/$f
done
但是,這可能不會設置跟蹤分支。從How to clone all remote branches in Git?
可能重複[git fetch無法獲取所有分支](https://stackoverflow.com/questions/11623862/git-fetch-doesnt-fetch-all-branches) –