如果我在当前分支中git fetch
,我正在尝试确定将提取哪个分支,以及如何更改(通过git remote
的某些变体或编辑.git/config
文件)。
从哪个远程分支git pull
获取内容? git fetch
取出内容的是相同的吗?有没有git命令可以显示所有这些信息?
答案 0 :(得分:7)
要为本地分支设置跟踪的远程分支,请使用
git branch --set-upstream <local_branch> <remote_branch>
因此,如果您希望本地master
跟踪origin/master
,请输入
git branch --set-upstream master origin/master
但是,git fetch
将获取已配置的遥控器的所有分支。
如果您有多个遥控器(例如origin
和other
),
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 branch
,git fetch
和git pull
的手册页上找到。