你如何重新分配当前分支的变化,在合并的变化之上?
好的。 如果我在一个分支上(比如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 ”是上游分支,这就解释了为什么在这个转变过程中, ours和theirs是颠倒过来的 。
我刚刚以下面的方式完成了这个工作:
- 备份当前正在进行的工作
git checkout -b work-in-progress - 获取最新的变化
git fetch origin/master - 丢弃任何本地变化
git reset --hard origin/master - 重播来自主
git rebase origin/master最新变化 - 重放你正在进行的工作
git rebase origin/work-in-progress - 与最新的master
git rebase origin/master同步您正在进行的工作