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

Updating a git branch that was created from a branch other than master

我一直在为从 master 创建的分支上的项目开发一项功能,目前正在审查合并。我称之为 dev。同时,我从 dev 创建了一个分支,我将其命名为 branch.

在审查时,发现 dev 需要一些更改,所以我检查 dev 退出,进行更改,然后重新提交并推送。

现在我的 branch 副本与其来源 dev 已过时。我该如何更新它?通常,我只会先获取,然后再拉取。当 master 有变化时,这样做会导致我的分支引入所述变化,让我能够及时了解同事的工作。当我尝试在我自己的分支之间执行此操作时,它说 branch 是最新的,这是不正确的。

我错过了什么?

谢谢。

编辑:我最终按照 Max Friederichs 的描述进行了变基。它按照我指定的方式使用 dev 的更改更新 branch。我选择 Jean Rostan 的答案的原因是因为进行变基会更改 git 存储库的工作流历史记录,但是按照 Jean 的建议进行合并会合并分支中的新内容并单独保留工作流历史记录 - 有利于当你想看看发生了什么的时候。

实际上,这两种解决方案实现的是同一件事,只是对工作流历史的影响不同。

如果只是本地分支(这是您的情况),请从要更新的分支开始:

git checkout branch

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

git merge dev

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

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

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

git checkout branch
git rebase dev

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