pull request的一些思考
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pull request的一些思考相关的知识,希望对你有一定的参考价值。
由于是团队使用的是PR工作模式,一般一个issue或者bug没有处理完成,是不能Pull Request的,只能在自己的仓库上commit和push, 完成了以后再向主仓库的相关分支发送PR,之后由测试人员在测试机上fetch PR主仓库中的PR,进行测试,测试完毕通过之后才合并PR到主仓库的主分支上。
PR的工作模式是优秀的开源软件工作模式的代表,能给开源项目发送PR,当你的PR被开源项目作者合并那是一件很开心的事。
最近开了一个新分支来开发一个大功能,让我很头疼的是在埋头开发时,没开发完不能随便PR到主仓库,但是偶尔要从主仓库中拉代码下来更新,这时候可能会有冲突,而太久没pull,即使只是一个文件冲突了,解决冲突后还要把别人commit的代码都重新提交一次,就个文件量就很大了。导致我在码云上pull request时,总是提示无法加载diff数据。
遇到这种情况我目前的解决办法是:
1.先删除当前为了解决冲突的commit:git reset --hard HEAD^
2.还原冲突文件:
git log xxx 查改改文件的日志
git reset 版本号 xxx 回退到指定的版本
git commit -m "文件回退" 提交本地
git checkout xxx 更新到工作目录
3.重新合并分支(我是在master分支上pull主仓库的代码,然后再开发分支上合并master分支):git merge master
4.重新在冲突文件上补上你冲突的内容,然后重新add、commit即可。
在进行以上操作时最好先git checkout -b 出一个备份分支,最好还要push到远程仓库,毕竟数据是无价的。
当然也可以用git reflog找回你之前回退的版本号,然后再git reset --hard 版本号。(版本号取前几位就行了)这样就回退到你原来的commit版本了。
以上是关于pull request的一些思考的主要内容,如果未能解决你的问题,请参考以下文章