小编The*_*tan的帖子

git rebase、git rebase -i 和 git merge 之间的低级差异

在 rebase 期间,我将本地功能分支同步到上游分支以完成拉取请求,我尝试使用所有三种方法(git rebase、git rebase -i 和 git merge),每种方法都提供了完全不同的体验,当它涉及解决冲突。

Git merge 一次向我展示了我所有的冲突。我解决了它们并在解决所有这些问题后添加了更改。正如预期的那样,合并弄乱了我的历史,我不得不再次恢复。

Git Rebase 分两步引导我解决冲突。在每个中,我添加了我的更改并在此之后继续 rebase。在这期间,我丢失了一个补丁,不得不重新开始。

交互式变基工作就像一个魅力。它引导我逐个提交冲突,在每次解决之后,它再次开始从功能分支的基础快速转发到下一个冲突。我可以确保提交的共同作者被正确包含,最后甚至不需要添加“合并”或“变基”提交,完成后坐在分支的头部。

我对何时使用它们中的每一个都有概念性的理解,但是为什么即使没有交互式编辑修订版,rebase 和交互式 rebase 的行为也有如此大的不同?为什么 git merge 和 git rebase 甚至使用,当它们似乎做的事情很糟糕并且更容易弄乱历史中的某些东西时?

git merge rebase git-interactive-rebase

1
推荐指数
1
解决办法
723
查看次数

标签 统计

git ×1

git-interactive-rebase ×1

merge ×1

rebase ×1