git branch - 本地还是什么?

时间:2015-06-18 18:59:25

标签: git github

我运行了以下命令:

(我们有一个名为“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有什么不同?

3 个答案:

答案 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

你应该做什么:

  1. git fetch origin

  2. git checkout master_next

  3. git branch

  4. 带有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