Git 学习笔记 - 合并

张开发
2026/4/15 15:22:11 15 分钟阅读

分享文章

Git 学习笔记 - 合并
Git 学习笔记 - 合并一、 合并的核心逻辑二、 合并选项列表详解三、 总结如何选择合并窗口参考原版(有点老)当前窗口用于将merge_20260410分支合并到当前的dev_jerry_kuafu一、 合并的核心逻辑在点击任何按钮之前必须明确 Git 合并的三个底层逻辑这能避免 90% 的误操作方向性合并操作是将从合并进当前。在打开合并界面前我们必须确保已经Checkout切换到了目标分支例如想把代码合入main就必须先站在main上。工作区状态强烈建议在工作区干净所有改动已提交或 Stash 暂存的情况下执行合并。这样如果合并效果不理想可以随时无损中止Abort。二、 合并选项列表详解选项名称官方定义与功能适用场景与建议不勾选(默认快进)如果满足 Fast-Forward快进条件则直接移动指针否则创建一个 Merge Commit。日常开发。多数情况下的首选让 Git 自动判断最简单的合并路径。并合 (Squash)将源分支所有提交压缩成一个修改但不保留源分支的 Parent 指针。清理垃圾提交。如果在开发分支上有很多无意义的提交如 “fix typo”合入主干时勾选它主干只会看到一个整洁的提交。非 Fast Forward即使可以简单移动指针也强行创建一个新的合并提交记录。功能上线/版本归档。能让 Git 图谱清晰地显示出“这里曾拉出一个分支后来又并回来了”方便追溯完整功能。不提交合并完文件后停留在暂存区不自动生成 Commit 记录。二次检查。如果担心合并后逻辑有误想在正式提交前先本地运行一下项目测试勾选此项。信息自动从源分支抓取指定数量的提交说明填充到当前的合并注释框中。文档自动化。当合并了很多小改动懒得手动写合并总结时用它来自动生成变更列表。仅快进式不能快进就直接报错。同步上游。当只想纯粹拉取远程最新代码不希望在本地产生复杂的交织线时使用。Fast-Forward快进: 连个分支在同一条路径上不存在冲突只需要移动指针就能实现当前分支指向源分支的位置。仅快进式当前分支从源分支出来当前分支没有过任何提交但凡当前分支有提交直接报错。适合测试工程师使用。三、 总结如何选择为了保证项目的稳定性建议遵循以下选择策略追求历史清晰度如果你希望在以后的Log图谱中能一眼看出哪个功能是哪天合并的请养成勾选No Fast Forward的习惯。追求主干整洁度如果是由于个人尝试性开发产生的零碎代码建议使用Squash这能避免主干分支被几百个“测试”提交淹没。规避风险如果你对合并后的代码信心不足勾选No Commit在本地编译、跑一下 Lua 脚本确认无误后再手动在 TortoiseGit 中点击 Commit。遇到冲突切记Local是自己。在处理数值 Excel 导出的 Lua 文件冲突时务必仔细比对防止数值回滚。小贴士合并完成后务必养成看一眼Git Log视图的习惯确认合并的“连线”符合你的预期。

更多文章