将Git分支更新到主分支

12

我有一个名为feature的分支用于开发。昨天我提交了代码,并将feature分支合并到了远程的master分支。

现在我想继续在我的分支上开发并添加更多功能。然而,由于昨天其他人已经向master添加了一些代码,那么怎样才能"更新"我的feature分支,使其包含来自master的所有最新更改呢?

我可以拉取最新版本的master,然后创建一个新的分支,但我想知道是否有方法可以"更新"我的当前feature分支。

2个回答

18

是的,有一种方法可以基于最新的master分支更新feature分支。您只需要在feature分支上执行以下命令:


# On feature branch
git pull origin master --rebase

现在的feature分支包含了master分支的最新更改。


给那位投反对票的人:您尝试过这个命令吗?能否解释一下原因? - Marina Liu
这似乎有效。虽然我用了两个步骤。 首先拉取主分支,然后将我的特性分支变基到主分支。上述命令是否同时执行这两个操作? - Kobek
不,它只更新“feature”分支。要更新“master”分支,你应该在“master”分支上执行“git pull origin master”。 - Marina Liu
这个方法可以运行,但似乎是一种不好的做法,因为它从主分支合并,最好分几步完成,这样清楚地表明这确实是你想要做的。许多人在分支上想要拉取远程分支的版本时,会错误地运行该命令,结果将主分支合并到他们的分支中。 - yorammi
@yorammi:当你说“拉取分支的远程版本”时,你是指“检出”吗?Git很令人困惑,但fetch然后merge并不比pull少令人困惑;当人们实际上想要checkout时,他们仍然会这样做。 - 7yl4r

2

将特性分支推送到主分支

  1. 如果其他开发者将他们的特性分支推送到主分支,请切换到主分支并获取最新版本。

git checkout master

git pull

  1. 如果在您处理特性分支时,有人将更改推送到主分支,则切换到特性分支并将主分支合并到特性分支,以便您可以解决冲突。

git checkout featurebranch

git merge --no-ff origin master

  1. 将特性分支合并到主分支中。

git checkout master

git merge --no-ff origin featurebranch


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