“git branch”和“git checkout -b”有什么区别?

我用git checkout -b来创build一个新的分支。 我认为, git branch做同样的事情。 这两个命令如何不同呢?

git checkout -b BRANCH_NAME创build一个新的分支,并签出新的分支,而git branch BRANCH_NAME创build一个新的分支,但让你在同一个分支。

换句话说, git checkout -b BRANCH_NAME为你做了以下工作。

 git branch BRANCH_NAME # create a new branch git checkout BRANCH_NAME # then switch to the new branch 

git branch创build分支,但你仍然在你已经签出的当前分支。

git checkout -b创build一个分支并将其检出。

这是简短的:

 git branch name git checkout name 
  • git branch显示你所有的分支
  • git branch newbranch创build一个新的分支
  • git checkout -b newbranch创build一个新的分支,并立即切换到该分支。 这跟git branch newbranchgit checkout newbranch

完整语法:

 git checkout -b [NEW_BRANCH] [FROM_BRANCH] 

[FROM_BRANCH]是可选的。 如果没有FROM_BRANCH,git将使用当前分支。

还有另一个标志提到,这是相对于这些..

 git checkout -B BRANCH_NAME 

这是我最近使用的一个非常有用的命令。 该命令将检出您指定的分支,并根据源分支重置分支。

这两个命令的forms是相似的(查看git-scm文档版本2.11.1):

 git branch <branchname> <start-point> 

 git checkout -b <new_branch> <start_point> 

后者先执行分支命令,然后添加结帐。 在这种forms中明确引用了git-branch的doc:

指定-b会导致创build一个新的分支,就好像调用了git-branch [2]然后检出一样