更新从master以外的分支创建的git分支

时间:2018-03-29 21:24:55

标签: git branch fetch pull

我一直在研究从master创建的分支上的项目的功能,目前正在审核合并。我称之为dev。在此期间,我创建了一个dev分支,我将其称为branch

在审核过程中,发现dev需要进行一些更改,因此我检查了dev,进行了更改,并重新推送并推送。

现在,我的branch副本已与其来源dev过时了。我该如何更新?通常情况下,我只需要取一个,然后拉一下。当master发生变化时,执行此操作会导致我的分支机构进行所述更改,从而使我能够及时了解同事的工作。当我尝试在自己的分支机构之间执行此操作时,它会说branch是最新的,这是不正确的。

我错过了什么?

感谢。

编辑:我最终做了一个改变,正如Max Friederichs所描述的那样。它根据branch的更改执行我在更新dev方面指定的内容。我选择Jean Rostan的答案的原因是因为做一个rebase改变了git存储库的工作流历史,但是当Jean建议合并来自分支的新东西并且单独留下工作流历史时 - 这对于你想要什么时候有用看看发生了什么事。

实际上,两种解决方案都会实现相同的目标,只会对工作流程历史产生不同的影响。

2 个答案:

答案 0 :(得分:1)

如果它只是本地分支(这是你的情况),首先要进入你想要更新的分支:

git checkout branch

然后合并目标分支的本地更改:

git merge dev

它会将dev合并到branch,也就是说更新它。

当您执行拉动时,您将检索上游更改(在远程仓库中);因此,如果远程仓库中的分支branch未进行任何更改,则不会发现任何更改。

答案 1 :(得分:1)

您需要rebase branch ...分支,以便它包含您对dev分支机构所做的最新更改

git checkout branch
git rebase dev

这会暂时搁置您对branch的更改,应用dev中缺少的更改,然后将更改重新应用到branch。此时也需要解决任何冲突。如果先前推送branch,您将需要强行推送。