git解决冲突

本文讲述了作者在GitHub上基于master分支新建的weight_linear分支遇到冲突后的解决过程,包括切换回master拉取最新代码,使用gitrebase处理冲突并重新提交的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一次 git 解决冲突的过程。

情况是前一段时间我基于本地的 master 分支上新建了一个分支比如叫做 weight_linear:

git checkout -b weight_linear

然后我已经在这个分支上进行了修改并上传到 github 上了,比如:

git add .
git commit -m "upload"
git push origin weight_linear:weight_linear

当然,这个 PR 现在还没有合并。然后今天我在这个 PR 的基础上提交新的 commit 的时候,github 提示有冲突:

于是就需要我们手动解决了。

解决方法

首先,确保你已经切换回 master 分支,然后执行 git pull origin master 命令拉取远程 master 分支上的最新代码。

注意:千万不要在github上更新你的master分支,不然你就diverge了!!!

git checkout master
git pull origin master

这里感觉可以把 git pull 换成 git pull --rebase

接下来,切换回 weight_linear 分支,然后执行 git rebase master 命令,这将将 weight_linear 分支的修改在 master 分支的最新提交之前重新应用一遍。

在执行 git rebase 命令时,如果出现冲突,Git 会将冲突标记在相应的文件中。你需要手动解决这些冲突。打开有冲突的文件,你会看到冲突标记,如 <<<<<<<=======>>>>>>>。在文件中手动解决冲突,保留需要的更改,删除不需要的更改和冲突标记。这个步骤就自己在 IDE 里手动修改冲突的文件就好了。

解决完冲突后,执行 git add 命令将修改的文件标记为已解决冲突。然后,通过 git rebase --continue 命令继续重新应用提交,直到没有冲突为止。

git add <resolved-file>
git rebase --continue

最后修改完解决完冲突之后,再次 git commit,然后 git push -f origin weight_linear,因为我们 rebase 过,所以这里需要加上 -f 强制推送一下。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值