我们知道,我创建了一个可以使用的本地branch
分支:
git checkout -b branch
但是有一个git checkout -b branch origin/branch
我不知道他们之间有什么区别,谁可以告诉我这件事?
此命令是否会创建远程origin/branch
?
修改
我有三个问题:
1. git checkout -b branch origin/branch
是否在本地回购中创建分支?
2. git checkout -b branch origin/branch
是否为远程仓库创建了原始分支?
3.或者git checkout -b branch origin/branch
是从本地repo主分支创建分支,git checkout -b branch
是否从当前分支创建分支?
答案 0 :(得分:3)
1. git checkout -b branch origin / branch是否在本地仓库中创建分支?
是
2.git checkout -b branch origin / branch是否为远程仓库创建了原始分支?
不,它会创建一个与origin / branch(最后一次拉动的状态)相同的本地分支
3.Or是git checkout -b分支origin / branch是从本地repo master分支创建分支,git checkout -b分支创建一个 当前分支的分支?
区别在于“新分支中的内容”。 origin / branch是指远程repo的本地引用(不能修改!),branch是本地分支。
查看git book
中的非常好的解释答案 1 :(得分:2)
<强>
git checkout -b|-B <new_branch> [<start point>]
强>指定
-b
会导致创建新分支,就像调用git-branch然后签出一样。 [...]
因此,调用git checkout -b new_branch
或git checkout -b new_branch start_point
等同于以下内容:
git branch new_branch
git checkout new_branch
# or
git branch new_branch <start_point>
git checkout foo
因此,让我们检查git-branch
该起点会发生什么:
命令的第二个表单创建一个名为
<branchname>
的新分支头,指向当前HEAD
或<start-point>
(如果给定)。
未指定起点意味着起点为HEAD
,因此git branch new_branch
相当于git branch new_branch HEAD
。
那么git branch new_branch start_point
做了什么?创建一个指向new_branch
指定的提交的新分支start_point
。如果您没有指定一个,那么这将是HEAD
,这是当前签出的提交。
总结一下:git checkout -b branch
将创建并检出与您当前所在位置完全相同的新分支branch
。 git checkout -b branch origin/branch
将创建并签出指向branch
的新分支origin/branch
,该分支是branch
远程上远程分支origin
的本地副本。 / p>