一、分支管理策略
在实际开发中,合并分支时 Git 默认采用 Fast Forward 模式。这种模式下,如果目标分支没有新提交,Git 会直接将指针移动到最新提交,不会生成新的合并节点。

这种方式虽然简洁,但删除分支后查看历史时,无法看出该分支曾经被合并过,丢失了分支信息。如果遇到冲突并解决,Git 会创建一个新的提交节点,此时就不再是 Fast Forward 模式了,好处是从分支历史中可以清晰看到合并痕迹。
例如,即使删除了合并冲突部分创建的 dev1 分支,在 master 上依然能看到它是由其他分支合并而来:
git log --graph --pretty=oneline --abbrev-commit
输出示例:
* ac37cfb (HEAD -> master) merge with no-ff
|
* 2bd7b8b (dev2) modify Readme
|/
* cb7ce27 merge book
|
* da3c3b1 modify book
* | fc26892 modify book
|/
* 33a5368 modify book
Git 支持强制禁用 Fast Forward 模式,这样每次合并都会生成一个新的 commit,保留完整的分支历史。下面实战一下 --no-ff 方式的 git merge。
首先,创建新分支 dev2 并切换:
git checkout -b dev2
Switched to a new branch 'dev2'
修改 book 文件并提交:
cat book
# Hello Island1314 Hello World hello version1...
git add .
git commit -m "modify Readme"
[dev2 2bd7b8b] modify Readme 1 file changed, 1 insertion(+)
切换回 master 分支进行合并:
git checkout master
Switched to branch 'master'
git merge --no-ff -m "merge with no-ff" dev2
Merge made by the strategy.
book | 1 + 1 file changed, 1 insertion(+)











