2013-06-29 69 views
22

我想從Github中的存儲庫中取出。但我不想克隆主分支。我想克隆一些其他分支。當我嘗試git clone <url>時,我從主分支中獲取文件。我該怎麼辦?從主分支以外的分支克隆

此外,假設代碼已在存儲庫中更新,我想獲取最新的代碼,我應該再次使用git clone嗎?因爲這個項目的規模很大。另外,如果我在本地對項目進行更改,然後再次使用git clone,那麼我所做的更改還會在那裏嗎?如果我不想要更改,那怎麼辦?

我甚至不確定git clone是否是正確的命令。 git pullgit fetch

我很抱歉,我對git很陌生。

回答

28

試試這個:

git init 
git fetch url-to-repo branchname:refs/remotes/origin/branchname 

編輯

更好的解決方案:

git clone -b mybranch --single-branch git://sub.domain.com/repo.git 
+0

我沒有得到url-to-repo之後的部分。我應該提一提branchname嗎?例如 - git fetch 演示(假設dev是分支名稱?) – user2510555

+0

我已更改爲更清潔的解決方案 – Aguardientico

+0

第一種解決方案的BTW:它說「branchname」它應該說分支,你想克隆類似'git fetch my_repo_url demo:refs/remotes/origin/demo' – Aguardientico

2

使用git clone --branch <name>可能添加--single-branch

像往常一樣,有git clone --help讀取命令的詳細信息

14
git clone <url> 

克隆併爲每個分支創建遠程跟蹤分支。 如果你想看到可用的分支(克隆)後,鍵入

git branch -l 

克隆之後你切換到一個特定分支做:

git checkout <branchname> 

其中BRANCHNAME是分支的名字:)

如果要克隆和檢出特定分支你做

git clone -b <branchname> <url> 

您提到的其他命令是「更新」您當前的工作副本。 git pull從遠程存儲庫獲取所有更改併合並它們,而git fetch僅在不合並的情況下獲取它們。

+2

'git clone -b ',對吧? – user2510555

+0

其實我認爲它是'git clone -b ' – kamjagin

+0

好的,謝謝。我現在就試試這個。 – user2510555