git fetch是对所有分支还是仅对当前分支进行操作?

时间:2010-10-15 21:35:05

标签: git

我在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

1 个答案:

答案 0 :(得分:1)

默认情况下,它将从远程仓库获取所有HEADS 但这些分支由refspec remoteRepoName / branchName

引用

所以在你的情况下,那将是:

git fetch
git merge remoteRepoName/branch1

git remote可以列出您在repo中注册的遥控器,以获得正确的远程回购名称。


注意:由于您使用的是引入发布(推/拉,which is orthogonal to branching)的DVCS,您可能希望从远程获取相同的branch2,并将其合并到您的本地{ {1}}。 换句话说,“其他人”不必为您的开发工作做出“branch2”。他/她可以创建一个branch1,它将存在于远程仓库的“命名空间”中,并将在您的本地仓库中获取/合并(即“拉”)。