我运行了以下命令:
(我们有一个名为“master_next”的临时分支)
(1)git fetch origin
(2)git checkout -b origin/master_next
现在,当我跑
时(3)git branch
我看到一些奇怪的东西。而不是看
master
master_next
我看到了
master
origin/master_next
为什么我刚刚签出的分支以“origin”开头 - 它是否有所不同?
这是确切的结果:
CACSVML-13295:smartconnect amills001c$ git fetch origin
From http://github.csv.comcast.com/Baymax/smartconnect
* [new branch] master_next -> origin/master_next
* [new tag] 0.0.2 -> 0.0.2
* [new tag] 0.0.3 -> 0.0.3
CACSVML-13295:smartconnect amills001c$ git checkout -b origin/master_next
Switched to a new branch 'origin/master_next'
CACSVML-13295:smartconnect amills001c$ git branch
master
* origin/master_next //wth?
任何人都可以解释为什么会发生这种情况以及origin / master_next可能与普通的master_next有什么不同?
答案 0 :(得分:2)
您可能打算使用-t
选项。
git checkout -t origin/branchname
将在提交时创建一个新的本地分支,branchname
远程上的origin
指向。它将同时设置新的本地分支以跟踪远程分支。这意味着您可以通过本地分支机构从中拉出并推送到它。
git checkout -b branchname
将在您当前所在的提交中创建一个新的本地分支。
答案 1 :(得分:1)
问题在于此命令:
git checkout -b origin/master_next
此命令创建了一个新分支origin/master_next
,而不是检出远程创建的分支master_next
。
你应该做什么:
git fetch origin
git checkout master_next
git branch
带有git checkout branch_name
的{{1}}命令会创建一个新分支-b
,然后检查该分支。
branch_name
答案 2 :(得分:1)
git checkout -b new_branch_name #will create new branch and checkout to it
创建一个新分支。 -b用于创建新分支。而是尝试git checkout -b origin/master_next