git fetch是在所有分支上运行还是仅在当前分支上运行?
我在github上有一个远程回购,在我的本地机器上有几个不同的分支(因此我可以使用“git fetch是在所有分支上运行还是仅在当前分支上运行?,git,Git,我在github上有一个远程回购,在我的本地机器上有几个不同的分支(因此我可以使用“git checkout master”、“git checkout branch2”等在分支之间切换)。 当我运行“git fetch”命令时,我永远无法确定它是为所有这些分支获取更新,还是仅为我当前工作的分支(我最近“签出”的分支)。 换句话说,如果我在branch2工作,并且希望合并其他人对branch1所做的更改,我是否需要执行以下操作: git checkout branch1 git fetch gi
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 checkoutbranch1
(如果你还没有加入这个分支)和git pull
(这将获取,然后合并)。但是,如果您想将remote/branch1
合并到localbranch2
,那么您不必首先在本地branch1
中将其合并@Jordan:有关此提取和合并过程的更多信息,请参阅。这是否等同于“git fetch;git checkout branch1;get merge origin/branch1;git checkout branch2;git merge branch1;”?(抱歉,这方面还是有点新--现在确定HEADS或refspec的意思了)@Jordan:事实上,如果你将remote/branch1
合并到branch1
,你只需:git checkoutbranch1
(如果你还没有加入这个分支)和git pull
(这将获取,然后合并)。但是,如果要将remote/branch1
合并到本地branch2
,则不必首先在本地branch1
@Jordan中将其合并:有关此提取和合并过程的更多信息,请参阅。