惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
B
Blog
T
The Blog of Author Tim Ferriss
量子位
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - Franky
小众软件
小众软件
Recent Announcements
Recent Announcements
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
InfoQ
美团技术团队
G
Google Developers Blog
Engineering at Meta
Engineering at Meta
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
Visual Studio Blog
云风的 BLOG
云风的 BLOG
博客园 - 【当耐特】
IT之家
IT之家
Microsoft Security Blog
Microsoft Security Blog
博客园 - 聂微东
Last Week in AI
Last Week in AI
H
Hackread – Cybersecurity News, Data Breaches, AI and More
H
Help Net Security

杂烩饭

使用RetroArch玩步步高电子词典游戏 彻底删除CCLibrary 在 Nginx 中禁止 IP 直连与域名暴露 使用 RustFS 自建对象存储 使用cURL命令管理对象存储(s3) AGENTS.md Prometheus使用kubeconfig做k8s的service 自动发现监控 定制Windows系统镜像iso 使用create-dmg工具制作dmg安装包 使用create-dmg工具制作dmg安装包 - 技术栈 superpowers Nexus仓库搭建记录 在 Linux 系统中安装与配置 OpenVPN:从入门到精通 使用 Easytier-web 管理 easytier 节点 ingress-nginx 去除指定context path 在macOS上使用MusicPlayer2听本地音乐 Kubernetes 1.34 + RHEL10 + Cilium + kube-vip 高可用集群部署 使用腾讯云CLS收集TKE(k8s)业务日志 容器调试工具之BusyBox 无Docker环境进行容器镜像操作 使用kubeadm部署一套高可用k8s集群1.34 for Ubuntu 正在运行的Docker容器增加端口映射 轻量级组网工具WireGuard 在Kubernetes中部署一个单节点Elasticsearch 使用openssl制作自签名双向认证(mTLS)证书 minio自建对象存储 ingress-nginx 使用自定义的nginx配置 P12格式证书与PEM格式转换 使用blackbox-exporter做域名监控 记一次MySQL字符集转换导致的故障
Git Merge代码冲突的解决方式
张理坤 · 2026-05-29 · via 杂烩饭

我在自己的分支开发,我在 dev 分支开发,想提交 Merge Request 合并到 main 分支,但是代码冲突,无法合并,需要先处理冲突,常用的解法有两种,一种是 merge 的方式合并代码,另一种是 rebase

这种方式需要有 push 主分支代码的权限

1
2
3
4
5
6
7
8

git checkout main


git pull


git merge dev

这个时候可能会出现代码冲突,建议使用 vscode 之类的软件进行合并,使用 VSCode 合并方式如下:

image.png|531

冲突解决完成,建议搜索一下关键词 >>>>>>>,能搜到,说明你的冲突还没解决完。
image.png|180

1
2
3
4
5


git add .
git commit -m 'merge dev to main'
git push

rebase 方式合并

rebase 的方式就是改变代码的分支起点,类似于把 dev 分支的起点转变到 main 的最新

1
2
3
4
5
          main
|
A---B---C---D
\
E---F (dev)

变成

1
2
3
A---B---C---D  (main)
\
E'---F' (dev)

其中 E’ 和 F’ 是 E、F 在 D 基础上重放的副本。

这样的好处是合并后的代码历史更简洁,是一条直线,且合并的时候可以不用管理员来处理代码冲突的情况(由自己处理掉),坏处是比较麻烦,可能会多次处理冲突。

1
2
3
4
5
6
7

git checkout main
git pull origin main


git checkout dev
git rebase main

如果这个界面直接 :wq 保存退出
image.png|474

这个时候如果有冲突,rebase 会停止,这个时候你需要手动解决冲突
image.png|485

建议使用 vscode 之类的软件解决冲突,使用 VSCode 合并方式如下:

image.png|531

冲突解决完成,建议搜索一下关键词 >>>>>>>,能搜到,说明你的冲突还没解决完。
image.png|180

解决完成后,执行

1
2
git add .
git status

确保没有 both modified:

然后继续执行 rebase:

1
git rebase --continue

如果有冲突,再次手动解决冲突,直到 rebase 操作结束。结束后你应该能看到:

image.png|455

因为分支历史被改写了,所以会出现 当前状态同时领先远程和落后远程的情况,这个时候需要强制推送到

1
git push --force-with-lease origin dev

然后你就可以正常的 merge 代码了。
image.png|549