2016-12-30 256 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,如果没有,你将需要在本地创建,然后推它,如果你想)