协慌网

登录 贡献 社区

如何查看远程 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

(注意它是'test' 而不是'origin / test')执行神奇的DWIM -mery 并为你创建本地分支'test',上游将是远程跟踪分支'origin / test'。


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

git checkout -b test HEAD

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

$ git branch test origin/test

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