文章目录
一、样例说明
假设有两个repo:repoA
和repoB
。其中,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
然后会提示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为例,查找到造成分支冲突的文件:
解决冲突,例如:
保存文件
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而不会提示分支冲突。