2016-12-30 70 views
0

我剛剛在本地克隆了一個存儲庫。我們預計將始終使用已經是存儲庫一部分的開發分支。當我列出所有的分支如下:Git結賬 - 如何

git branch -a 

結果如下:

master (with an *) 
remotes/origin/HEAD -> origin/master 
remotes/origin/develop 
remotes/origin/master 

我現在該如何籤的發展分支,開始工作。 當我剛剛說

git checkout 

Checking out files: 100% (2436/2436), done. 
Note: checking out 'develop'. 
enter code here` 
enter code here`You are in 'detached HEAD' state. You can look around, 
make experimental 
changes and commit them, and you can discard any commits you make in this 
state without impacting any branches by performing another checkout. 

如果你想創建一個新的分支保留你創建提交,您可以 再次使用-b與checkout命令這樣做(現在或以後)。例如

git checkout -b new_branch_name 

如果我籤使用,這似乎是創建一個新的本地分支

git checkout -b new_branch_name 

想到的另一種選擇是

git checkout -b develop origin/develop 

很明顯,我缺少對Git分支的一些基本理解。 我想澄清上述問題,以及分支機構在遠程分支機構上的工作原理。

+0

「我們期待」,我會假設你會得到在職有關如何使用所需工具的培訓,您應該與您的團隊負責人覈對,看看這種培訓有哪些選擇。 –

+0

@ user2186453,有沒有任何答案可以幫助你解決問題?如果是,請標記它,因爲它會幫助那些有類似問題的人。 –

回答

0

檢出遠程分支,你應該打

git checkout remote_branch_name 

如果你想切換到本地分支

git checkout -b local_branch_name 

瞭解更多關於它here

0

其實所有的樹枝參考存在在.git/refs/remotes directory。你可以直接切換到不同的分支。如git checkout develop

0

如果你想創建一個本地分支跟蹤的遠程分支:

git checkout -b local_brach_name origin/remote_brach_name 

例如:

git checkout -b develop origin/develop 

將創建一個名爲開發跟蹤遠程分支與同一個本地分支名稱(該命令也將簽出到這個新的本地分支)。

+0

對不起,如果這是一個基本的問題。那麼,爲什麼我應該「創建」一個本地分支。該分支已存在於存儲庫中,並已將其克隆。 – user2186453

+0

@ user2186453在git中,您不能直接在遠程分支上工作,您必須擁有自己的本地副本。從你的輸出中,你克隆了master分支,git爲你創建了一個本地副本。如果您已經克隆了開發分支,git會爲您創建一個本地副本,並始終跟蹤遠程。你可以用'git branch'來檢查你的本地分支。 [docs](https://git-scm.com/book/en/v2/Git-Branching-Remote-Branches)可以幫助您更好地瞭解遠程分支的工作方式。 – Nogoseke

0

我認爲這兩個答案都是正確的,但只是以防萬一gitHelp:p。

remotes/origin/HEAD -> origin/master 
remotes/origin/develop 
remotes/origin/master 
  • 的Git分支---「創建新的本地分支
  • git的結帳--->使用
  • 混帳結賬分支之間移動-b --->創建並移動到新的本地分支。 (相當於支部+結賬)

現在只要你克隆回購,你就能「git checkout develop」,因爲遠程分支已經存在,當你克隆回購,那麼你就不要「necesary」需要到git branch develop && git checkout develop

爲了避免混淆,另一個評論是:當你克隆一個repo時,它只是創建主LOCAL分支。 (我的意思是,如果你git克隆和git分支,你會看到主*)所有的遠程分支都可用,但你總是需要git checkout <name>爲了在該分支編碼。 (記住,如果remotebranch存在,你可以簡單的git checkout,如果沒有,你將需要在本地創建,然後推它,如果你想)