2013-05-03 60 views
11

我是Git的新手,我想知道两个命令之间的区别。使用`git checkout -b`有和没有分支的起点

`git checkout -b <branch-name>` 
`git checkout -b <branch-name> origin/master` 

如果我执行第一个命令,Git如何创建分支?分支是从本地主设备还是远程主设备创建的?请帮助我。

回答

8

如果您未指定起点,则会从您当前签出的内容(当前的HEAD)创建新分支。

git-checkout

git checkout -b|-B <new_branch> [<start point>]

指定-b导致一个新的分支被创建仿佛git的分支(1)被称为然后检出。

而且git-branch

[...]命令的第二种形式创建一个名为<branchname>一个新的分支头如果给它指向当前HEAD,或<start-point>

+0

所以在这种情况下,'git checkout -b origin/master',如果我做了一个git push,这会转到我的remote origin/master吗? – Mojoy 2013-05-03 08:52:58

+0

默认情况下,正如我链接到的文档中所写,是的,当起始点是远程分支时,它将被跟踪。 – Mat 2013-05-03 08:58:48

+2

@annonymous,你总是可以验证你的本地跟踪分支是如何配置的通过执行'git remote -v show origin'来远程分支WRT – kostix 2013-05-03 11:05:44