有没有一种方式可以从我的分支中拉取主分支的更改?

4

我正在处理一个三分支项目。

我现在在branch1,同时还有master分支。

如果我需要从master拉取并合并一些内容:

git checkout master
git pull origin master
git checkout branch1
git merge master

有没有一种方法可以从我的分支中拉取主分支的修改,这样我就不需要执行合并操作了?
类似于:
git pull origin master

但是不需要切换到主分支,就可以从分支1拉取代码。

编辑

简述:

我有三个分支:每次主分支有新内容时,我不想切换到主分支。我只想将主分支的新功能合并到我的分支中,而不必进入主分支。


“pull”这个词的意思有点不太清楚。拉取和“合并”是两个不同的概念。 - Willem Van Onsem
2
我认为你需要切换到一个分支来拉取代码,以防有冲突 - 如果不检出,你无法解决这些冲突...但是在 Git 中永远不要说永远。 - Andy Joiner
你可以选择执行合并(merge)或者变基(rebase)... - Willem Van Onsem
@CommuSoft,你能回答这个问题吗? - Non
1
你的意思有点不清楚,是指您的主分支合并到主分支,还是 主分支合并到您的分支?您想要更新主分支,还是您的分支... - Willem Van Onsem
显示剩余6条评论
2个回答

6

您可能希望使用rebase,以便将您的主分支更改合并到您正在工作的分支上。

git fetch origin            # Updates origin/master
git rebase origin/master    # Rebases current branch onto origin/master

同时查看这个问题。

更新:最近的Git版本提供了一种更简单的方法来执行上述两个命令的等效操作。

git pull --rebase origin master
# where --rebase[=(false|true|merges|preserve|interactive)]

这应该是一个评论,除非您提供更好的解释。 - Non
我支持这个答案,但在使用rebase之前,你应该先了解一下它的影响。 - Andy Joiner

1

从你的工作文件夹中,使用已检出的branch1:

git fetch
git merge origin/master

fetch命令会从远程仓库下载变更到你的本地机器,但不会将它们应用到你的工作目录。 merge命令会将刚刚下载的变更应用到你的工作目录(无论你当前在哪个分支上)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接