我正在尝试找出当前分支在执行"git fetch"后将会拉取哪个分支,以及如何更改它(可以通过某些变种的“git remote”或编辑“.git/config”文件来实现)。
从哪个远程分支“git pull”获取内容?它与“git fetch”从哪里获取的内容相同吗?有没有一个git命令可以向我展示所有这些信息?
从哪个远程分支“git pull”获取内容?它与“git fetch”从哪里获取的内容相同吗?有没有一个git命令可以向我展示所有这些信息?
要为本地分支设置已跟踪的远程分支,请使用以下命令:
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_name>
上的<remote_branch>
。.git/config
文件的以下部分中定义的。[remote "origin"]
fetch=+refs/heads/*:refs/remotes/origin/*
url=<url_of_origin>
refs/heads
下的分支会被获取并存储在本地仓库的 refs/remotes/origin/
中。如果你在分支 mybranch
上输入 git fetch
,则会获取指定在[remote <remote_name>]
部分中的 <remote_name>
的修订版本。如果你输入 git pull
,在获取 <remote_name>
的修订版本后,<remote_name>
的分支 <remote_branch>
将合并到 mybranch
中。有关更多信息,请参阅git branch
、git fetch
和git pull
的说明文档。
git fetch
是否会将所有形式为origin/refs/heads/xyz的分支带到本地远程跟踪分支refs/remotes/origin/xyz?这是否发生在所有xyz或只发生在当前分支(在其中发出git fetch
)? - Yogeshwer Sharmamybranch
上并输入git fetch
,则将获取在[remote <remote_name>]部分指定的<remote_name>
的修订版。我认为这样是正确的,对吧? - Yogeshwer Sharma