2014-09-04 73 views
2

我嘗試設置一個usb-hdd作爲我所有本地回購的移動版本。我使用的所有內容都不在線,現在不共享。所以唯一的合作者就是我。 因此,我們的目標是保存我的整個進度,並將其從其他機器上的USB克隆。重要的部分是,所有的標籤和特別是分支都被推,拉。我並不是真的想爲每個分支手動做些事情。 現在我克隆我的回購使用Git:從裸露的USB遙控器上取下所有東西

$ cd /Volumes/usb 
$ git clone --mirror /path/to/working/repo 

,現在我想拉一切從裸(據我所知鏡意味着裸)的回購協議。 於是我去到另一臺機器/文件夾中,並做了

$ git clone file:///Volumes/usb/repo.git 

和主分支本地克隆,我得到一個工作目錄。然而,所有其他分支只是在遠程(裸usb回購),不拉。 如果我使用git branch -r,我可以在遙控器上看到所有這些,但拉不能做任何事情。

$ git br -a 
* devel 
    remotes/origin/HEAD -> origin/devel 
    remotes/origin/devel 
    remotes/origin/master 

$ git pull origin master 
From /test/repo 
* branch   master  -> FETCH_HEAD 
Already up-to-date. 
$ git br -a 
* devel 
    remotes/origin/HEAD -> origin/devel 
    remotes/origin/devel 
    remotes/origin/master 

沒有改變,它沒有設置本地分支。整個問題甚至會將所有的遠程分支機構設置爲本地分支機構。我真的想開始,我離開的地方。然而

回答

1

所有其他部門都只是遠程(裸USB回購)並不會被拉開

他們拉。
而你看到他們,不是在「遠程」,而是在你的本地回購中的命名空間來源。

如果你真的想擁有這些遠程跟蹤分支爲分支,看到onle班輪我在「git pull all branches from remote repository

$ remote=origin ; for brname in `git branch -r | grep $remote | grep -v master | grep -v HEAD | awk '{gsub(/[^\/]+\//,"",$1); print $1}'`; do git branch -t $brname $remote/$brname ; done 

一旦所有地方分公司正在跟蹤遠程跟蹤分支使用,你仍然要使用script if you were to pull all branches

+0

@mike請升級到最新的git:http://apple.stackexchange.com/a/127073 – VonC 2014-09-04 11:17:35

+0

正如這裏所述:http://stackoverflow.com/questions/67699/how-to-clone-all- remote-branches-with-git?rq = 1 沒有原生的方式。如果有人發現更好的工作流程,請回答我。 到目前爲止,腳本的方式起作用,就像建議的那樣。 – mike 2014-09-04 12:26:56