如何检出远程Git分支?

有人用git push origin test将一个名为test的分支git push origin test送到共享存储库。 我可以看到使用git branch -r

现在我试图检查远程test分支。

我试过了:

  • git checkout test ,它什么都不做

  • git checkout origin/test给出* (no branch) 。 这是令人困惑的。 我怎么能在“没有分支”?

  • 如何检出远程Git分支?


    更新

    Jakub的回答实际上改善了这一点。 使用Git版本≥1.6.6时,您可以执行以下操作:

    git fetch
    git checkout test
    

    (用户masukomi指出,如果你有多个遥控器,那么git checkout test在现代git中将不起作用,在这种情况下,使用git checkout -b test <name of remote>/test )。

    旧答案

    在开始在远程分支本地工作之前,您需要按照以下答案中的说明取出它。

    要获取分支,您只需要:

    git fetch origin
    

    这将为您获取所有的远程分支。 您可以看到可用于结帐的分行:

    git branch -v -a
    

    对于远程分支机构,您现在需要查看您感兴趣的分支机构,并为您提供本地工作副本:

    git checkout -b test origin/test
    

    旁注:使用现代Git(> = 1.6.6),您可以使用

    git checkout test
    

    (注意它是“测试”而不是“起源/测试”)来执行神奇的DWIM-mery并为您创建本地分支'测试',其上游将是远程跟踪分支'起源/测试'。


    git branch输出中的* (no branch)意味着您处于未命名分支,即所谓的“分离HEAD”状态(HEAD直接指向提交,并且不是对某个本地分支的符号引用)。 如果你在这个未命名的分支上进行了一些提交,你总是可以创建本地分支关闭当前提交:

    git checkout -b test HEAD
    

    在这种情况下,您可能需要创建一个本地test分支,用于跟踪远程test分支:

    $ git branch test origin/test
    

    在早期版本的git ,你需要一个明确的--track选项,但是当你分支远程分支时,这是默认的。

    链接地址: http://www.djcxy.com/p/55.html

    上一篇: How do I check out a remote Git branch?

    下一篇: The definitive guide to form