本文重点:在团队开发过程中,如何解决代码冲突问题产生冲突原因
- 在多人协作开发工作中,多人同时对一个文件进行修改,在提交时,要解决冲突的问题。
- 第一个操作者基本是可以正常提交的,而之后的开发者要执行pull(拉)和pull(推)操作时,就会报冲突异常。
- 此时开发者,需要结合实际情况去解决冲突,有时候需要和其他开发者去讨论,手动解决冲突,然后再提交代码
本次任务
- /contributions/USER_LIST.md文件用于存放所有贡献者个人介绍文件清单。
- 在此文件添加本人“个人介绍”的文件链接,具体文件修改方式见后面的步骤。
开始实践
1、先确保上次的PR被成功merge。在上次成功的基础上,进行本次实验步骤。
2、检查当前开发环境信息
执行git remote命令,检查upstream是否存在
git remote
如果upstream不存在,则需要执行以下命令,添加upstream
git remote add upstream git@github.com:2020NCOV/ncov-report
执行git branch命令,查看当前分支情况
git branch
由于在上次提交PR2之后,这期间一直没有修改过本地代码,因此可以执行以下命令,再次同步远程的upstream仓库数据
由于刚刚同步了最新的内容,因此下面的操作步骤可能不会产生冲突,建议等一段时间(在你更新upstream后,有新的PR并被merge)再进行后面的实践步骤,这样才能有冲突发生,才能体验冲突解决的步骤
git pull --ff upstream master
这些内容是自上次更新内容后,主仓库中又新增的内容
3、在本地仓库创建一个新分支,名字可以为pr3test,该分支名字可以自行确定
git checkout -b pr3test
执行git branch命令,查看当前分支情况
git branch
4、修改文件contributions/USER_LIST.md
此文件为多人协作共同维护的文件
在原有内容基础上,增加一行本人简介文件链接,记录内容如下:
USER_LIST.md文件
5、提交更改到本地仓库
提交之前可以使用git status命令,查看当前本地git库状态
git status
提交本地暂存库
git add .
git commit -m "此处填写描述信息"
6、将本地仓库与上游仓库内容进行同步
git fetch upstream master
git rebase upstream/master
upstream仓库与本地有冲突,其他用户修改过同一个文件
7、解决冲突(如果存在冲突,则需要执行此步骤)
先手动解决冲突的内容
发生冲突的文件Git用<<<<<<>>>>>>标记出不同分支的内容&#xff0c;然后我们根据情况&#xff0c;手动解决&#xff0c;然后再提交就可以了。手动解决冲突后&#xff0c;执行以下命令&#xff1a;
git add contributions/USER_LIST.md
git rebase --continue
8、将本地库分支推送到github
git push -f origin pr3test
9、提交PR
此时你会发现&#xff0c;你的个人github仓库中多了一个pr3test分支。
查看一下修改的内容现在可以按照上次教程的步骤&#xff0c;基于pr3test分支来提交PR了
创建PR
创建PR3
10、在你的PR被成功合并(merge)后&#xff0c;还需要做如下清理和同步的工作
- 在本地的git bash客户端中的命令行&#xff0c;执行如下命令删除远程分支&#xff1a;
git push origin --delete pr3test
- 检出并切换本地仓库的主分支(master)&#xff1a;
git checkout master -f
- 删除本地分支branch-name&#xff1a;
git branch -D pr3test
- 用最新的upstream版本来更新本地仓库的主分支(master)&#xff1a;
git pull --ff upstream master
至此&#xff0c;你的本地仓库的主分支(master)与远程仓库代码主分支(master)保持一致&#xff0c;并且删除了本地仓库和你个人github仓库中的branch-name分支了。
更多的交流活动&#xff0c;敬请关注我们的开源项目相关活动动态信息
Github 开源项目地址&#xff1a;https://github.com/2020NCOV/ncov-report加好友&#xff0c;请注明2020NCOV 拉入学习交流群