在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase。
两种观点:
有一种观点认为,仓库的提交历史即是记录实际发生过什么。
它是针对历史的文档,本身就有价值,不能乱改。从这个角度看来,改变提交历史是一种亵渎,你使用 谎言 掩盖了实际发生过的事情。
如果由合并产生的提交历史是一团糟怎么办? 既然事实就是如此,那么这些痕迹就应该被保留下来,让后人能够查阅。
另一种观点则正好相反,他们认为提交历史是项目过程中发生的事。没人会出版一本书的第一版草稿,软件维护手册也是需要反复修订才能方便使用。
持这一观点的人会使用 rebase 及 filter-branch 等工具来编写故事,怎么方便后来的读者就怎么写。
这两种操作,更多的建议是:

Merge的时候,一定不要使用fast-forward,IDE和gitlab web默认都不启用,如果使用命令行操作,一定使用如下命令:
git merge --no-ff xxx
也不建议使用–squash选项
