2013-05-03 59 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