如何将当前分支的更改重新建立在合并的更改之上?

好吧。如果我在一个分支上(比如说 working) ,并且我想合并来自另一个分支的更改(比如说 master) ,那么我在 working分支上运行命令 git-merge master,这些更改被合并进来,而根本没有重新设置历史记录的基础。如果我运行 git-rebase master,那么在 master的变化是重新基于放在我的 working分支的顶部。但是,如果我想合并在从 master的变化,但重新基地我的变化,在 working的顶部?我该怎么做?能做到吗?

我可以在我的 master分支上运行 git-rebase working,将我的更改放在 master分支的顶部,但是我希望能够在我的 working分支上做到这一点,而我不知道如何做到这一点。我能想到的最接近的方法是从 master创建一个新的分支,然后在此基础上重新设置 working的更改,但这样我就有了一个新的分支,而不是更改 working分支。

256354 次浏览

你得到了什么 rebase做反过来。git rebase master完成你要求的任务ーー获取当前分支上的更改(因为它与主机发生了分歧) ,并在 master上重播这些更改,然后将当前分支的负责人设置为新历史的负责人。它 没有在当前分支的顶部重播来自 master的更改。

另一种看待它的方式是,将 git rebase master视为:

将当前分支 master重新定基

在这里,‘ master’是 逆流而上分支,这解释了为什么在重建基础期间会出现 ABC1和 theirs颠倒了

当将当前更改重新基于 master 时,您可以:

  1. 拉下最新的主机: git pull <remote_name> master
  2. 签出要将更改重定基为 git checkout <branch_name>的分支
  3. 执行 rebase: git rebase master

一个可选的路径是: git rebase origin/master,它允许您将更改从远程分支(例如,原始/主服务器)重建为本地分支,而无需在本地更新远程分支