当前位置:首页 >> 网络编程

使用git处理github中提交有冲突的pull request的问题

前言:

  为什么要写这篇文章,因为前段时间有一个开源的github中的项目有一个朋友提交了一个pr看了下是帮忙优化了下代码(十分感谢这位网友)。但是他提交的pr刚好和我的项目有许多的冲突导致无法自动合并,在github中提示只能使用命令行指令进行合并,因为这种情况处理的比较少为了以后方便使用在这里记录一下。

github中的大概命令合并指令

使用git处理github中提交有冲突的pull request的问题

1、首先我们需要下载一个git分布式管理工具

下载Git链接地址:https://git-scm.com/

2、然后我们需要clone下我们的项目

git clone sgit@github.com:YSGStudyHards/NPOI-ExportWordAndExcel-ImportExcelData.git(ssh项目链接)

3、创建并切换到该分支,并同步到master中

git checkout -b 创建的分支名 master

使用git branch查看当前所属分支

使用git处理github中提交有冲突的pull request的问题

4、拉取有冲突的pr到该分支中

git pull https//github.com/某人的/某项目的.git master

github中的命令语句

git pull git://github.com/hongbobaoer/NPOI-ExportWordAndExcel-ImportExcelData.git 20201109

5、直接打开冲突文件手动解决冲突

当项目拉取下来以后,我们就需要解决有冲突的文件信息了  

使用git处理github中提交有冲突的pull request的问题

由下面的冲突文件中的冲突内容我们了解到:

<<<<<<< HEAD
6月19日 pingrixuexilianxi添加了内容
=======
6月18日 pingrixuexilianxi2修改了这个文件哦
> a8284fd41903c54212d1105a6feb6c57292e07b5

<<<<<<< HEAD到 =======里面的【6月19日 pingrixuexilianxi添加了内容】是自己刚才的Commit提交的内容=======到 > a8284fd41903c54212d1105a6feb6c57292e07b5里面的【6月18日 pingrixuexilianxi2修改了这个文件哦】是远程代码库更新的内容(即为pingrixuexilianxi2本地代码库推送修改内容)。手动冲突解决方法根据项目需求删除不需要的代码就行了,假如都需要的话我们只需要把<<<<<<< HEAD======= > a8284fd41903c54212d1105a6feb6c57292e07b5都删掉冲突就解决了(注意,在项目中最后这些符号都不能存在,否则可能会报异常)。或者可以使用git可视化管理工具(推荐)

原因:由于有些人使用代码合并比较生疏,为了避免出错推荐使用sourcetree进行解决冲突合并。

详细使用sourcetree地址参考:https://www.cnblogs.com/Can-daydayup/p/13128633.html

6、合并更改并在GitHub上更新

注意:这里是没有使用可视化工具合并的时候才需要自己使用代码去执行合并,提交,更新操作!

git commit -a //把修改提交到新建的分支上,会提示你成功merge本地代码到这个人的代码库

git checkout master //切换到自己的主分支上

git merge 创建的分支名 //将新建的分支合并到自己的分支上

git push origin master //将代码推送的远程仓库中