我在开发人员分支上,我尝试执行git rebase remote/a_remote_branch
我明白了:
First, rewinding head to replay your work on top of it...
Applying: change #1
Failed to merge in the changes.
Patch failed at 0001 change #1
我的问题是为什么git rebase
尝试应用'更改#1'?
这是因为当我执行git log
时,我在本地分支中看到'更改#1',为什么git尝试在我重新定义时再次应用'更改#1'?
答案 0 :(得分:5)
merge
和rebase
之间的区别在于rebase
正试图让您在新版本的父分支上看起来像一样您的分支。因此,它会删除所有分支提交,快速转发到最新的父提交,然后尝试重新应用您的更改。因此,重新基于。如果你merge
它进行了一次新的提交,它会将你工作中的所有父更改。然后冲突(如果有的话)将在合并提交中,而不是在现有的分支工作中。