您的位置:首页 > 其它

Git学习笔记(4)

2016-03-20 14:55 295 查看

写在前面的话

万事开头难,在写博客的过程中会重新发现问题,重新思考问题,这样会加深自己对东西的理解。

项目合并

上一篇讲到了,项目开发者yangjingya自己fork了qulewei的项目,并进行了提交。这时候作为项目主管的qulewei是看不到yangjingya的代码的,除非去cloneyangjingya的本地仓库。这时候,项目到了验收的时候,需要将两人的项目进行合并。先分别看一下两人的远程仓库

这是yangjingya的远程仓库



这是qulewei的远程仓库



现在由yangjingya发出merge请求,这部分操作在Gitlab上进行。



这里可以看出yangjingya想将自己的项目merge到qulewei的项目中去。



可以看到这个merge请求是将yangjingya的master分支合并到master中,这时我们切换到qulewei的账号中去接受这个merge请求。



只需要接受这个merge就好了。

这时候我们的文件就如下图所示了



可以看出README.md是由qulewei提交的,test.c是由yangjingya提交的,两个工程合并在一起了。

合并冲突

合并冲突就是两个人同时修改同一个文件的同一个地方,这样在合并时就会出现合并冲突,因为Git分辨不出来谁的是正确的,谁的是错误的,这就需要人工手动去修改。

这里描述一个场景,当我们完成了一次merge之后,qulewei本地仓库中仍然没有更新,需要我们手动去更新一下,拿到最新的代码,然后再进行开发。

这时候我们会执行

git pull origin master


这句话的意思是我们从远程代码仓库中拿到最新的代码,并跟本地的代码仓库进行merge

执行之后,如下图所示:



出现了所谓的merge冲突,提示我们冲突是出现在README.md中出现的,现在我们就要去看看README.md中的问题。



=======分割的是冲突的两部分,上面是本地的部分,下面是远程冲突的部分。我们按照我们的想法进行修改。



然后做如下操作冲突便解决了



结束语

篇文章主要是讲解了,如何通过Gitlab去merge两个人的项目,以及如何去处理merge冲突,处理merge冲突其实还是需要人们手工去处理,Git能做的只能是将冲突部分标出,具体判断哪些是必要的,哪些是不必要的还需要教给程序员处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: