我想弄清楚如果我在当前分支中执行git fetch
将提取哪些分支,以及如何更改该分支(通过git remote
的一些变体或编辑.git/config
文件)。如何找到当前分支跟踪什么分支
从什么远程分支git pull
取内容? git fetch
提取内容是否一样?有没有可以告诉我所有这些信息的git命令?
我想弄清楚如果我在当前分支中执行git fetch
将提取哪些分支,以及如何更改该分支(通过git remote
的一些变体或编辑.git/config
文件)。如何找到当前分支跟踪什么分支
从什么远程分支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_name>
(在[remote <remote_name>]
部分中指定)的修订版本。如果您输入git pull
,则在取得<remote_name>
的修订后,<remote_name>
的分支<remote_branch>
将合并为mybranch
。
有关其他信息,请参见手册页git branch
,git fetch
和git pull
。
我一直在寻找关于远程分支的信息,而你最后一段(建议看看.git/config)非常有帮助。你知道什么 [remote“origin”] fetch = + refs/heads/*:refs/remotes/origin/* mean(在我的.git/config中)? 'git fetch'是否将形式origin/refs/heads/xyz的所有分支带入本地远程跟踪分支refs/remotes/origin/xyz?这是否发生在所有xyz或只有当前分支(在哪个'git fetch'发出)? –
这太好了。一个小小的编辑:如果你在'mybranch'上并输入'git fetch',那么'[] section_中指定的''_的修订版本将被提取。我认为这是正确的,对吗? –
由于某种原因,我不能说“@ eckes”。它会自动删除! :-( –