OSChina git 代码fork及PR指南

分支命名规则:

项目代码分为3个特性分支,命名规则为:
开发版本:特性名_master
测试版本:特性名_test_branch
正式版本:特性名_release_branch
注:如果是默认项目,特性名可以省略。否则需要加上对应的特性名称,比如当前在当前项目基础上给某单位/组织/地域开发项目时,特性名前缀为对应的拼音,首字母大写,比如给西安开发某项目,分支名称为Xian_**_**。

Fork仓库,本地修改后提交PR

OSChina git 代码fork及PR指南_第1张图片
Paste_Image.png

Fork之后,个人名下就可以看到Fork出来的仓库了,对应的分支也能看到:

Paste_Image.png

找到地址,clone代码下来:

OSChina git 代码fork及PR指南_第2张图片
Paste_Image.png

在默认的master分支,修改Fork出来的本地文件:

Paste_Image.png

Commit后,push刚才的修改到OSChina个人名下的master分支:

OSChina git 代码fork及PR指南_第3张图片
Paste_Image.png

刷新OSChina个人名下仓库,可以看到对应的ReadMe文件已经修改了,点击Pull Request:

Paste_Image.png

制定源分支、目标分支、代码审查人员,

OSChina git 代码fork及PR指南_第4张图片
Paste_Image.png

PR提交给组织了,上面我们指定了“刘超”审查代码,“卞晓辉”进行测试。可以看到状态是未审核,未测试。

Paste_Image.png

对应的人员会收到审查和测试通知,如下:

OSChina git 代码fork及PR指南_第5张图片
Paste_Image.png

审查和测试通过后,可以接受代码合并了,如下:

OSChina git 代码fork及PR指南_第6张图片
Paste_Image.png

合并后,如果还有一次反悔的机会,慎重使用:

Paste_Image.png

可以看到对应的修改已经更新到主仓库上(XAVito/HelloWorld)。如下:

Paste_Image.png

Fork仓库同步主仓库的最新代码
主仓库主分支更新了内容,如下:

OSChina git 代码fork及PR指南_第7张图片
Paste_Image.png

Fork仓库同步主仓库的更新:

Paste_Image.png

更新后查看差异(注意当前在Fork仓库的master分支上),有如下两种方式:

OSChina git 代码fork及PR指南_第8张图片
Paste_Image.png
Paste_Image.png
OSChina git 代码fork及PR指南_第9张图片
Paste_Image.png

测试在Fork出来的仓库master分支做增量修改并提交(预期会产生冲突)。如下:

Paste_Image.png
Paste_Image.png
OSChina git 代码fork及PR指南_第10张图片
Paste_Image.png

试用merge,产生冲突,如下:

Paste_Image.png
Paste_Image.png

解决冲突,并提交代码到Fork仓库:

Paste_Image.png
OSChina git 代码fork及PR指南_第11张图片
Paste_Image.png

但与此同时主仓库也前进了,如下:

Paste_Image.png
Paste_Image.png
OSChina git 代码fork及PR指南_第12张图片
Paste_Image.png
Paste_Image.png

Fork仓库提交更新到主仓库(PR审查代码勾选上),提交PR后,主仓库收到更新通知了::

Paste_Image.png

审查没有问题,通过,发现和主仓库的修改有冲突了,如下:

OSChina git 代码fork及PR指南_第13张图片
Paste_Image.png

好办,解决冲突:

Paste_Image.png
OSChina git 代码fork及PR指南_第14张图片
Paste_Image.png

OSChina git 代码fork及PR指南_第15张图片
Paste_Image.png

注:对于冲突的代码,代码审核人员必须要大家解决冲突,对于存在冲突的PR,关闭PR并评论。
进一步学习
合并最近的多次提交
参考地址
变基
分支是很让人讨厌的,因为代码提交历史不够整洁。也有办法让他归到一个分支上去,使用rebase。方法请参考【变基】。

你可能感兴趣的:(OSChina git 代码fork及PR指南)