Git核心概念精讲:分支、提交、合并与变基的实战理解
昨天帮同事排查一个线上问题,发现他的本地分支和远程仓库完全对不上。问他怎么操作的,支支吾吾说“就是来回切分支,然后pull了几次”。打开git log一看,好家伙,提交历史像一团乱麻,merge commit多到能织毛衣。这让我意识到,很多开发者用Git三五年,其实还在用SVN的思维在操作——只知道commit/push/pull,对分支、合并、变基这些核心概念的理解还停留在表面。
从一次真实的合并冲突说起
上周调试一个嵌入式驱动时遇到这么个情况:我在feature/gpio-optimize分支改了几行寄存器配置代码,同事在develop分支修复了同一个文件的时钟初始化逻辑。当我尝试把develop合并过来时,Git提示冲突了。
<<<<<<< HEAD
GPIOx->CRL = 0x44444444; // 我的优化配置
=======
GPIOx->CRL = 0x33333333; // 同事的修复
>>>>>>> develop
这时候很多人会直接选“用我的版本”或者“用他的版本”,但真正该做的是理解两边的修改意图。我的优化是为了降低功耗,他的修复是解决时钟毛刺问题。最终正确的合并结果应该是:
GPIOx->CRL = 0x33333333; // 先应用时钟修复
/* 功耗优化配置在CRH寄存器实现 */
GPIOx->CRH = 0x88888888;
订阅专栏 解锁全文

1552

被折叠的 条评论
为什么被折叠?



