如何解决代码冲突

如果你在执行 git pull --rebase origin dev 时出现了代码冲突,这种情况一般是dev远程分支与你本地的分支出现了差异。废话不多说,以下是解决步骤:

1. 查看冲突文件

首先,打开冲突文件,你会看到类似这样的标记:

plaintext 复制代码
<<<<<<< HEAD
// 远程分支的代码(origin/dev)
=======
// 你本地提交的代码(5ac06d7)
>>>>>>> 5ac06d7... fix:同步XXX修改;

2. 手动解决冲突

编辑该文件,保留你需要的内容,并删除冲突标记(<<<<<<<=======>>>>>>>)。例如:

vue 复制代码
// 合并后的正确代码
<div>合并后的内容</div>

一般它会提示你用你本地的版本还是用远程线上的版本,这个过程全靠你自己来判断了,如果拿不定主意的,你可能得找到线上提交这部分修改的人,跟他确认清楚再做取舍。

3. 标记冲突已解决

解决冲突后,执行:

bash 复制代码
git add src/views/***/index.vue

将代码提交暂存。

4. 继续 rebase

bash 复制代码
git rebase --continue

这条命令可以把刚才因为冲突停止的变基操作继续下去。

5. 如果遇到更多冲突

重复步骤 1-4,直到所有冲突解决完毕。

6. 完成 rebase

所有冲突解决后,rebase 会自动完成,你的提交会被应用到更新后的分支上。

7. 推送代码

最后,强制推送到远程分支,因为 rebase 修改了历史,普通的push已经无效了,git会认为你的本地分支dev-x和远程的dev分支已经不同了,所以要执行强制推送:

bash 复制代码
git push --force-with-lease origin dev-x

不过,这个前提是你确认代码冲突已经解决,你现在是最新的提交。

注意事项:

  • 如果中途想放弃 rebase,可以执行:

    bash 复制代码
    git rebase --abort
  • 确保强制推送前没有其他人正在协作该分支,以免覆盖他人的提交。

总结步骤:

bash 复制代码
# 1. 手动解决冲突后添加文件
git add <冲突文件>

# 2. 继续 rebase
git rebase --continue

# 3. 强制推送
git push --force-with-lease origin dev-x

这样就能安全地同步远程更改并保留你的提交。

相关推荐
1candobetter3 天前
GitLab 项目创建与分支管理全流程
gitlab
林鸿群4 天前
Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式)
linux·ubuntu·gitlab·私有部署·代码托管·ubuntu 26.04·omnibus
ascarl20105 天前
IDEA 一直弹 GitLab 登录,VS Code 却能正常 `git push`?问题排查记录
git·gitlab·intellij-idea
企鹅郁金香7 天前
Gitlab和Confluence和Svn的备份
svn·gitlab·confluence·gitlab备份·svn备份·confluence备份
barbyQAQ7 天前
GitLab CI/CD 基本用法指南
java·ci/cd·gitlab
云中飞鸿8 天前
git、svn;TortoiseGit、TortoiseSVN;gitlab、github、bitbucket、bamboo有什么关系?
git·svn·gitlab
007张三丰10 天前
掌握核心!Git最常用的15个命令行:从入门到实战详解
git·gitlab·github·git命令行·常用命令行
人间打气筒(Ada)12 天前
gitlab私有仓库搭建
运维·gitlab·项目实战·devops·代码部署实战·版本控制仓库
黑蛋同志12 天前
Rocky Linux 10 上搭建 社区版 GitLab CE
linux·运维·gitlab
gpio_0112 天前
自建gitlab服务器并用sakurafrp穿透
运维·服务器·gitlab