如何找到当前分支跟踪的分支

时间:2011-08-03 04:50:38

标签: git

如果我在当前分支中git fetch,我正在尝试确定将提取哪个分支,以及如何更改(通过git remote的某些变体或编辑.git/config文件)。

从哪个远程分支git pull获取内容? git fetch取出内容的是相同的吗?有没有git命令可以显示所有这些信息?

1 个答案:

答案 0 :(得分:7)

要为本地分支设置跟踪的远程分支,请使用

git branch --set-upstream <local_branch> <remote_branch>

因此,如果您希望本地master跟踪origin/master,请输入

git branch --set-upstream master origin/master

但是,git fetch将获取已配置的遥控器的所有分支。

如果您有多个遥控器(例如originother),

git fetch other

将在

时获取远程other
git fetch origin

将获取origin

要找出正在跟踪的远程分支,请打开.git/config并搜索类似

的条目
[branch "mybranch"]
  remote = <remote_name>
  merge = <remote_branch>

这告诉您,您的本地分支mybranch已配置为远程<remote_name>,并且<remote_branch>跟踪<remote_name>

.git/config的以下部分中定义了从远程获取哪些分支以及如何在本地仓库中调用它们:

[remote "origin"]
  fetch=+refs/heads/*:refs/remotes/origin/*
  url=<url_of_origin>

这会告诉您存储在原始refs/heads下的分支被提取并存储在本地仓库中的refs/remotes/origin/下。

如果您在mybranch并输入git fetch,则会获取<remote_name>的修订版(在[remote <remote_name>]部分中指定)。如果您输入git pull,则在获取<remote_name>的修订后,<remote_branch>的分支<remote_name>将合并到mybranch

其他信息可在git branchgit fetchgit pull的手册页上找到。