好的。如果我在一个分支上(比如
working
),并且我想合并来自另一个分支(比如 master
)的更改,那么我在 git-merge master
分支上运行命令 working
,然后更改会被合并,而无需重新设置历史记录。如果我运行 git-rebase master
,那么 master
中的更改将被重新设置为放置在我的 working
分支的顶部。但是,如果我想合并 master
中的更改,但将 working
中的更改重新设置为最上面,该怎么办?我怎么做?可以做吗?
我可以在我的
git-rebase working
分支上运行 master
将我的更改放在 master
分支的顶部,但我希望能够在我的 working
分支中执行此操作,而且我不知道如何。我能想到的最接近的做法是从 master
创建一个新分支,然后在此基础上重新调整 working
的更改,但随后我将拥有一个新分支,而不是更改 working
分支。
您已经得到了
rebase
的反向功能。 git rebase master
执行您所要求的操作 - 获取当前分支上的更改(因为它与主分支不同)并在 master
之上重播它们,然后将当前分支的头设置为新分支的头历史。它不会重播当前分支顶部master
的更改。
在 master 之上重新调整当前更改时,您可以:
git pull <remote_name> master
git checkout <branch_name>
git rebase master
允许您将远程分支(例如,origin/master)的更改重新设置到本地分支而无需在本地更新远程分支的替代路径是:
git rebase origin/master