git fetch是在所有分支上运行还是仅在当前分支上运行?

git fetch是在所有分支上运行还是仅在当前分支上运行?,git,Git,我在github上有一个远程回购,在我的本地机器上有几个不同的分支(因此我可以使用“git checkout master”、“git checkout branch2”等在分支之间切换)。 当我运行“git fetch”命令时,我永远无法确定它是为所有这些分支获取更新,还是仅为我当前工作的分支(我最近“签出”的分支)。 换句话说,如果我在branch2工作,并且希望合并其他人对branch1所做的更改,我是否需要执行以下操作: git checkout branch1 git fetch gi

我在github上有一个远程回购,在我的本地机器上有几个不同的分支(因此我可以使用“
git checkout master
”、“
git checkout branch2
”等在分支之间切换)。
当我运行“
git fetch
”命令时,我永远无法确定它是为所有这些分支获取更新,还是仅为我当前工作的分支(我最近“签出”的分支)。
换句话说,如果我在
branch2
工作,并且希望合并其他人对
branch1
所做的更改,我是否需要执行以下操作:

git checkout branch1
git fetch
git checkout branch2
git merge branch1
或者我可以这样做:

git fetch
git merge branch1

默认情况下,它将从远程回购获取所有头。
但这些分支由refspec remoteRepoName/branchName引用

因此,在您的情况下,这将是:

git fetch
git merge remoteRepoName/branch1
可以列出您在回购中注册的远程回购,以获得正确的远程回购名称


注意:由于您使用的是DVCS,它引入了发布(推/拉),因此您可能希望从远程获取相同的
branch2
,并将其合并到本地
branch2

换句话说,“其他人”不必做出“
分支1
”来为您的开发工作做出贡献。他/她可以创建一个
分支2
,该分支将存在于远程回购的“名称空间”中,并将在本地回购中获取/合并(即“拉入”)。

默认情况下,它将从远程回购中获取所有头。
但这些分支由refspec remoteRepoName/branchName引用

因此,在您的情况下,这将是:

git fetch
git merge remoteRepoName/branch1
可以列出您在回购中注册的远程回购,以获得正确的远程回购名称


注意:由于您使用的是DVCS,它引入了发布(推/拉),因此您可能希望从远程获取相同的
branch2
,并将其合并到本地
branch2

换句话说,“其他人”不必做出“
分支1
”来为您的开发工作做出贡献。他/她可以创建一个
branch2
,它将存在于远程repo的“名称空间”中,并将在本地repo中获取/合并(即“拉入”)。

这是否等同于“git fetch;git checkout branch1;get merge origin/branch1;git checkout branch2;git merge branch1;”?(抱歉,这方面还是有点新--现在确定HEADS或refspec的意思了)@Jordan:事实上,如果你将
remote/branch1
合并到
branch1
,你只需:git checkout
branch1
(如果你还没有加入这个分支)和
git pull
(这将获取,然后合并)。但是,如果您想将
remote/branch1
合并到local
branch2
,那么您不必首先在本地
branch1
中将其合并@Jordan:有关此提取和合并过程的更多信息,请参阅。这是否等同于“git fetch;git checkout branch1;get merge origin/branch1;git checkout branch2;git merge branch1;”?(抱歉,这方面还是有点新--现在确定HEADS或refspec的意思了)@Jordan:事实上,如果你将
remote/branch1
合并到
branch1
,你只需:git checkout
branch1
(如果你还没有加入这个分支)和
git pull
(这将获取,然后合并)。但是,如果要将
remote/branch1
合并到本地
branch2
,则不必首先在本地
branch1
@Jordan中将其合并:有关此提取和合并过程的更多信息,请参阅。