记录一次 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 分支上的最新代码

git checkout master
git pull origin master

这里感觉可以git pull 换成 git pullrebase

接下来,切换回 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 pushf origin weight_linear,因为我们 rebase 过,所以这里需要加上 –f 强制推送一下。 

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注