Git 本地和云端仓库双向同步与冲突解决完整教程
Git 本地和云端仓库双向同步与冲突解决完整教程
核心原则:安全第一
在进行任何版本回溯或强制合并操作前,永远先建立本地安全备份分支,这是企业级开发规避灾难的第一习惯。
第一步:创建安全备份(黄金习惯)
1 | |
第二步:选择同步策略(二选一)
根据企业的代码管理规范,通常有两种方案来融合本地与远端更新:
方案 A:Merge 策略(推荐,适合多人共享主干/重要分支)
特点:保留完整的平行历史轨迹,生成一个“合并提交(Merge Commit)”,时间线绝对真实、安全、可追溯。
方案 B:Rebase 策略(适合个人开发分支 Feature Branch)
特点:抹平分支分叉,让提交历史呈现完美的一条直线,没有冗余的 Merge Commit。
方案 A 实战:使用 Merge 方式保留双方更新
如果你在主干分支(如 main / master)或者团队公共分支上开发,推荐使用此方案。
1 | |
- 可能出现的情况:
- 如果没有代码冲突:Git 会自动完成合并,此时本地仓库既包含你本地的修改,又包含了远端的修改。
- 如果产生代码冲突:进入第三步:解决冲突。
方案 B 实战:使用 Rebase 方式保留双方更新
如果你在自己的功能分支(如 feature/login)上开发,且希望提交历史整洁。
1 | |
- 可能出现的情况:
- 如果在逐个应用提交的过程中某一步代码冲突:Git 会暂停 Rebase,提示你在对应文件中解决冲突。
第三步:企业级代码冲突解决规范(核心难点)
当本地和远端修改了同一行代码时,Git 无法自动裁决,会进入冲突状态。此时按照以下步骤处理:
1 | |
冲突解决后的收尾动作:
如果你使用的是 方案 A(Merge):
1
2
3# 既然是通过 merge 进来的,解决完所有冲突并 git add 后,继续完成合并提交
git commit -m "fix(conflict): resolve merge conflict between local and remote updates"如果你使用的是 方案 B(Rebase):
1
2
3
4
5# 既然是通过 rebase 进来的,解决完当前冲突后,让 Git 继续应用剩下的本地提交
git rebase --continue
# 注释:如果在 rebase 过程中还有其他冲突,重复“改文件 -> git add -> git rebase --continue”流程,直到提示 successfully rebased。
第四步:最终验证与安全推送到远端
当本地与远端的代码成功融合后,执行最后一步。
1 | |
💡 运维防错小结
| 场景 | 推荐操作指令 | 优点 |
|---|---|---|
| 多人协作公共分支 | git fetch -> git merge origin/<branch> --no-ff |
历史轨迹百分百真实,绝不会丢失任何人的代码。 |
| 个人独占功能分支 | git pull origin <branch> --rebase |
提交历史呈线性,Code Review 时非常清爽。 |
| 突发灾难、改砸了 | git reset --hard backup-local-work-2026 |
瞬间回到第一步创建的安全备份点,重新来过。 |
Git 本地和云端仓库双向同步与冲突解决完整教程
https://dreamshao.github.io/2026/08/04/本地仓库和远端仓库都有更新怎么办/