我在 Stack Overflow上花了半个小时阅读merge
vs。rebase
据我了解,rebase
这很好,因为它保持线性,但可能会让合作者感到困惑,因为它会改变历史。
那么,这样推断是否公平
在功能分支上,使用 fetch+merge 来维护历史记录并避免协作者之间的混淆。混乱并不重要,因为无论如何它都会在推送到 master 后被删除。
在 master 分支上,使用 rebase 以避免混乱。修改历史记录并不重要,因为功能分支作为单个提交被推出。
我在 Stack Overflow上花了半个小时阅读merge
vs。rebase
据我了解,rebase
这很好,因为它保持线性,但可能会让合作者感到困惑,因为它会改变历史。
那么,这样推断是否公平
在功能分支上,使用 fetch+merge 来维护历史记录并避免协作者之间的混淆。混乱并不重要,因为无论如何它都会在推送到 master 后被删除。
在 master 分支上,使用 rebase 以避免混乱。修改历史记录并不重要,因为功能分支作为单个提交被推出。
这主要取决于您的工作流程以及您的分支在该工作流程中扮演的角色。
根据经验:
实际上,我几乎总是使用git pull --rebase
. 重要的部分是将上游设置为正确的远程分支,即
您在 主题分支上时变基
# integrate the latest upstream changes into your "master"
git checkout master
git pull
# make sure that you're on your topic branch
git checkout my_topic
# do the rebase
git rebase master
然后准备好后,您可以将主题分支合并到主分支
git checkout master
git merge my_topic