git解决冲突

记录一次 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 提示有冲突:

git解决冲突_第1张图片

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

解决方法

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

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 
git rebase --continue

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

你可能感兴趣的:(git)