你如何重新分配当前分支的变化,在合并的变化之上?

好的。 如果我在一个分支上(比如working ),而且我想合并来自另一个分支(比如master )的更改,那么我在working分支上运行命令git-merge master ,并且在没有合并的情况下根本不重视历史。 如果我运行git-rebase master ,那么master中的变更将被重新设置为放在我的working分支的顶部。 但是,如果我想合并来自master的变更,但是将我的变更重新设置为最高? 我怎么做? 可以这样做吗?

我可以在master分支上运行git-rebase working来将我的更改放在master分支上,但是我希望能够在我的working分支中做到这一点,而我不知道如何实现。 我能想到的最接近的是从master创build一个新的分支,然后重新working的变化,然后我会有一个新的分支,而不是改变working分支。

你已经得到了什么反转。 git rebase master做你要求的 – 在当前分支上进行修改(因为它与主分离),并在master上重放它们,然后将当前分支的头部设置为新的历史logging的头部。 它不会重播当前分支上的master变更。

另一种看待它的方式是把git rebase master看作:

将当前分支重新设置 master

在这里,“ master ”是上游分支,这就解释了为什么在这个转变过程中, ourstheirs是颠倒过来的 。

我刚刚以下面的方式完成了这个工作:

  1. 备份当前正在进行的工作git checkout -b work-in-progress
  2. 获取最新的变化git fetch origin/master
  3. 丢弃任何本地变化git reset --hard origin/master
  4. 重播来自主git rebase origin/master最新变化
  5. 重放你正在进行的工作git rebase origin/work-in-progress
  6. 与最新的master git rebase origin/master同步您正在进行的工作