你如何重新分配当前分支的变化,在合并的变化之上?
好的。 如果我在一个分支上(比如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
同步您正在进行的工作