你有没有过这样的经历?家里衣柜乱成一团,上衣、裤子、袜子全堆在一起,想找件衬衫得翻半天。代码仓库也一样,分支多了不及时整理,迟早会出问题。本地仓库合并分支操作,其实就是给代码“衣柜”做一次规整。
为什么要在本地合并分支
很多人习惯直接在远程仓库发起合并请求,但其实先在本地测试合并更安全。就像做饭前先尝一口咸淡,本地合并能提前发现冲突,避免把问题推到主干分支上影响别人。
比如你正在开发一个新功能,写了个 feature/login 分支。等功能完成,准备合入主分支时,先在自己电脑上操作一遍,确保没冲突、程序能正常运行,再推送到远程,这样更稳妥。
基本合并流程
假设你现在在主分支 main 上,想把 feature/login 的改动合并进来,步骤很简单:
git checkout main
git merge feature/login
第一条命令切换到主分支,第二条执行合并。如果系统提示 “Already up to date”,说明你的主分支已经包含最新改动,不用额外操作。
遇到冲突怎么办
有时候两个分支改了同一个文件的同一行,Git 不知道该听谁的,就会提示冲突。这时候别慌,打开报错的文件,你会看到类似这样的内容:
<<<<<<< HEAD
console.log('用户已登录');
=======
console.log('Login success');
>>>>>>> feature/login
上面是当前分支(main)的内容,下面是待合并分支的改动。你需要手动决定保留哪一部分,或者重新写一行。改完之后删掉那些 <<<<<<<、=======、>>>>>>> 标记,然后保存文件。
接着执行:
git add .
git commit -m "解决登录模块合并冲突"
这样就完成了冲突处理。记得提交信息写清楚,方便以后回溯。
养成好习惯,避免麻烦
就像每天顺手把用完的东西放回原位,写代码也要及时同步主干。建议每次开始工作前,先更新一下主分支:
git checkout main
git pull origin main
然后再基于最新的代码创建新分支。这样能大大减少后期合并时的冲突概率。
合并完成后,本地没用的旧分支也可以清理掉:
git branch -d feature/login
这就像把过季的衣服收进收纳箱,保持 workspace 干净整洁。