git解决Forks间的合并冲突

文章目录

  • 一、样例说明
  • 二、解决方法
    • 1. 把repoB (fork from repoA) 克隆到本地
    • 2. 在本地的repoB中新建一个分支
    • 3.解决分支冲突
    • 4. 将解决分支冲突后的项目commit到本地
    • 5. Merge the changes and update on GitHub


一、样例说明

假设有两个repo:repoArepoB。其中,repoB是通过fork repoA而得到的(B fork from A)。

某一时刻,A与B同时修改一个文件,并提交到各自的远程仓库。一段时间后,B想通过Fetch upstream来Pull request更新仓库,此时就会报错:
请添加图片描述

二、解决方法

1. 把repoB (fork from repoA) 克隆到本地

 git clone repoB URL

2. 在本地的repoB中新建一个分支

repoB通过Fetch upstream来申请repoB仓库的Pull request
git解决Forks间的合并冲突_第1张图片
然后会提示command line instructions
根据github的提示,在本地的repoB项目中输入相应的git指令(以自己的github中的指令为准):

git checkout -b fork1666-master master
git pull https://github.com/fork1666/forkMerge.git master

3.解决分支冲突

用编辑器打开克隆到本地的仓库repoB,以VS code为例,查找到造成分支冲突的文件:
git解决Forks间的合并冲突_第2张图片
解决冲突,例如:
git解决Forks间的合并冲突_第3张图片
保存文件

4. 将解决分支冲突后的项目commit到本地

git add .
git commit -m"message"

5. Merge the changes and update on GitHub

根据github的提示,在本地的repoB项目中输入相应的git指令(以自己的github中的指令为准):

git checkout master
git merge --no-ff fork1666-master
git push origin master

执行完上述操作之后,远程repoB仓库便更新到了repoA的最新版本。repoB可以直接向repoA提Pr而不会提示分支冲突。

你可能感兴趣的:(OpenSource,git,github)