git merge 与 rebase 如何影响提交历史?
参考答案
merge 将两条历史汇合,可能产生合并提交,也可能快进;rebase 将一组提交重新应用到新的基点,通常会生成新的提交对象和哈希。两者最终文件内容可以相同,但历史结构不同。
重写已经被其他人基于其开发的共享历史,会让协作者需要处理分叉,因此不能随意 rebase 并强推公共分支。个人未共享分支可以按团队约定整理,合并策略应保持一致。
遇到冲突时要理解双方业务意图,再继续或中止操作。不要把“历史更直”当成唯一标准,也不要在不清楚远端变化时覆盖推送。工作区状态、当前分支和提交备份应在操作前确认。