# github_flow_example **Repository Path**: singed58/github_flow_example ## Basic Information - **Project Name**: github_flow_example - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-12 - **Last Updated**: 2024-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # github flow简介 ### 参考 [Github Flow](https://docs.github.com/en/get-started/using-github/github-flow) ### 工作流主要步骤 ![工作流](/assets/1.png "work flow") 第一步:根据需求,从master拉出新分支,不区分功能分支或补丁分支。 第二步:新分支开发完成后,或者需要讨论的时候,就向master发起一个pull request(简称PR)。 第三步:Pull Request既是一个通知,让别人注意到你的请求,又是一种对话机制,大家一起评审和讨论你的代码。对话过程中,你还可以不断提交代码。 第四步:你的Pull Request被接受,合并进master,重新部署后,原来你拉出来的那个分支就被删除。(先部署再合并也可。) # 建议都以github flow的方式向车网贡献代码 因为贡献者不一定所有模块或子模块都有权限,所以需要在84机器下面提交代码并打包。 ### 示例 比如商汤要向车网贡献camera demuxer代码, 则执行以下几步 #### 1.在84机器上面克隆airos-edge master分支代码,确保clone下来的代码是master的最新提交 ``` git clone https://gitee.com/bcavt/airos-edge.git ``` #### 2.新建feature分支 ``` git checkout -b st_camera_demuxer master ``` #### 3.在st_camera_demuxer分支上贡献代码 编辑完代码之后,确保: * airos整体编译通过 * 如有测试用例,测试用例通过 #### 4.提交st_camera_demuxer分支到远程 ``` git add . git commit -m "Add camera demuxer module" git push origin st_camera_demuxer ``` * 如果涉及到多次提交,请使用git rebase将提交合并成一个。 #### 5.贡献代码者在gitee页面,发起Pull Request * 发起pull request ![pr](/assets/2.png) * 提交pr ![pr2](/assets/3.png) #### 6.代码审核者审查PR ![pr3](/assets/4.png) 在审查页面,审查者可以看到提交的详细内容,包括: 1. 提交内容说明 2. 代码改动范围 3. 代码改动git log 以及可以对改动进行评审及要求提交者重新编辑,重新提交,打回等。 ![pr4](/assets/5.png) 点击审核通过,测试通过, 合并分支后,则代码会自动合入目标分支(一般是master) ![pr5](/assets/6.png) 在master分支可以看到提交及合并记录: ![pr6](/assets/7.png) 至此, 一次完整的代码贡献流程完全。 此流程有以下好处: 1. 每一步流程清楚,有记录,可回溯,可对比。 2. 各家贡献者可分别提pr,不相互影响。 3. 后续也无需再单独将贡献内容重新合入主分支。 4. master分支也设为保护分支,仅有高级权限的相关人员可提交和进行pr review