如何合并GitHub与GitBench?及安全合并origin dev与jihoon3分支
合并Git分支(origin/dev 与 jihoon3)的安全操作指南
准备工作
- 确保本地分支与远程同步:
git checkout dev git pull origin dev git checkout jihoon3 git pull origin jihoon3 # 若jihoon3仅为本地分支可跳过此步 - 备份当前分支以防意外:
git branch jihoon3-backup
方案一:常规合并(保留分支历史)
- 在
jihoon3分支上发起合并:git merge dev - 遇到冲突时,使用IDE自带的冲突解决工具(如VS Code、IntelliJ)可视化处理,或通过命令行标记冲突文件:
- 保留当前分支(jihoon3)内容:
git checkout --ours <冲突文件名> - 保留目标分支(dev)内容:
git checkout --theirs <冲突文件名>
- 保留当前分支(jihoon3)内容:
- 针对
package.json的重叠内容:- 先查看差异:
git diff dev jihoon3 -- package.json - 手动合并关键项(如新增依赖、scripts命令、配置参数),避免盲目覆盖
- 先查看差异:
- 所有冲突解决后,提交合并:
git add . git commit # 或直接使用git commit -m "Merge dev into jihoon3"
方案二:变基合并(生成线性提交历史)
若偏好干净的线性提交记录,可使用变基:
- 切换到
jihoon3分支:git checkout jihoon3 - 执行变基:
git rebase dev - 每遇到冲突,解决后执行:
git add . git rebase --continue- 若某步冲突无法处理,可跳过该提交(谨慎操作):
git rebase --skip - 若需放弃变基:
git rebase --abort
- 若某步冲突无法处理,可跳过该提交(谨慎操作):
- 变基完成后推送到远程:
git push origin jihoon3 --force # 变基后需强制推送,确保分支权限允许
方案三:分阶段合并(降低冲突复杂度)
若分支差异过大,可拆分合并范围:
- 先合并无冲突的目录/文件:
git merge dev --strategy-option=ours src/ # 保留jihoon3的src目录内容 git merge dev --strategy-option=theirs docs/ # 保留dev的docs目录内容 - 单独处理冲突集中的文件(如
package.json),完成后再提交剩余合并内容。
合并完成后
- 验证合并后的代码可正常运行(如执行
npm install、运行测试用例) - 若合并到
dev分支,切换到dev后重复合并流程,再推送远程:git checkout dev git merge jihoon3 git push origin dev
内容的提问来源于stack exchange,提问作者jihoon
相关产品推荐
相关产品推荐

