😁 git协作规范及流程说明

::: hljs-center # git协作规范及流程说明 ::: &emsp;&emsp;规范制定分支为俩种类型,分别为 &emsp;&emsp;**主要分支** &emsp;&emsp;**临时性分支** ## 1、主要分支 &emsp;&emsp;主要分支主要是3个: &emsp;&emsp;**主(master)分支** &emsp;&emsp;**开发(develop)分支** ### 1.1 主分支-master &emsp;&emsp;master分支在每个代码仓库中有且只有一个,用来存储已发布上线的代码。 ### 1.2 开发分支-develop &emsp;&emsp;develop分支是日常开发过程中使用的分支,当需要上线近期开发稳定的代码功能时将会合并到master分支。 ## 2、临时性分支 &emsp;&emsp;用于应对一些特定目的的版本开发与发布。临时性分支主要有三种: &emsp;&emsp;**功能(feature)分支** &emsp;&emsp;**预发布(release)分支** &emsp;&emsp;**修补bug(fixbug)分支** &emsp;&emsp;这三种分支都属于临时性需要,使用完以后,应该删除,保持代码库的常设分支始终只有master和develop。 ### 2.1 功能分支 - feature &emsp;&emsp;功能分支,它是为了开发某种特定功能(新功能),从develop分支上面分出来的。开发完成后,要再并入develop。 &emsp;&emsp;功能分支的名字,可以采用 feature-<font color=#8B0000>_{name}_</font> 的形式命名。<font color=#8B0000>_{name}_</font> 表示新功能的名称。 &emsp;&emsp;例如 :准备开发一个提醒用户未读消息的功能,可以命名为 feature-reminderUnread ```bash # 从master分支拷贝代码并创建一个新的功能分支: git branch -c master feature-{name} # 从develop分支拷贝代码并创建一个新的功能分支: git branch -c develop feature-{name} # 切换到创建的功能分支: git checkout feature-{name} # 开发完成后, 推送到云端仓库: # set-upstream参数代表本地分支与云端分支进行关联,首次推送需要使用,关联完成后后续推送可以不加此参数 git commit -m '本次开发功能描述' git push --set-upstream origin feature-{name} # 删除功能分支(本地): git branch -d feature-{name} # 删除功能分支(云端): git push origin -d feature-{name} # 开发完成后,必要时建议合并主要分支的最新代码后提交给测试工程师测试: git fetch --all git merge --no-ff develop ``` &emsp;&emsp;功能分支工作完成后,需要登录云端仓库提交pull request。 ### 2.2 修补bug分支 - fixbug &emsp;&emsp;修补bug分支,当软件发布以后,难免会出现bug。这时就需要创建一个分支,进行bug修补。 &emsp;&emsp;修补bug分支是==从master分支或者develop分支上面分出来的==。修补结束以后,再==合并进master和develop分支==。它的命名,可以采用fixbug-<font color=blue>_{branch}_</font>-<font color=#8B0000>_{bug1,bug2}_</font>的形式。<font color=blue>_{branch}_</font>表示当前修补bug存在于哪个主要分支,<font color=#8B0000>_{bug1,bug2}_</font>表示当前修补bug的唯一编号或名称,多个bug共同修复使用 **,** 符号隔开。 &emsp;&emsp;栗子1:master分支上有一个id为999的bug,可以命名为 fixbug-master-999 &emsp;&emsp;栗子2:develop分支上存在id为666和888的俩个bug,对其共同修复,可以命名为 fixbug-develop-666,888 ```bash # 从master分支拷贝代码并创建一个新的修补bug分支: git branch -c master fixbug-master-{bug1,bug2} # 切换到创建的功能分支: git checkout fixbug-master-{bug1,bug2} # 修补完成后, 推送到远端仓库: # set-upstream参数代表本地分支与云端分支进行关联,首次推送需要使用,关联完成后后续推送可以不加此参数 git commit -m '本次修补描述' git push --set-upstream origin fixbug-master-{bug1,bug2} # 最后,删除修补bug分支(本地): git branch -d fixbug-master-{bug1,bug2} # 删除修补bug分支(云端): git push origin -d fixbug-master-{bug1,bug2} # 修补结束后,必要时建议合并主要分支的最新代码后提交给测试工程师测试: git fetch --all git merge --no-ff develop ``` &emsp;&emsp;修补bug工作完成后,需要登录云端仓库提交pull request。 ### 2.3 预发布分支 - release 预发布分支,它是指发布正式版本之前(即合并到master分支之前),我们可能需要有一个预发布的版本进行测试。 预发布分支是从develop分支上面分出来的,预发布结束以后,必须==合并进develop和master分支==。它的命名,可以采用release-<font color=#8B0000>_{name}_</font>的形式。 ```bash # 从develop分支拷贝代码并创建一个新的预发布分支: git branch -c develop release-{name} # 测试通过后,合并到master分支: git checkout master git merge --no-ff release-{name} # 对合并生成的新节点,做一个标签 git tag -a 1.2 # 再合并到develop分支: git checkout develop git merge --no-ff release-{name} # 最后,删除预发布分支: git branch -d release-{name} ``` ## QA ### Q:伙伴们如何配合? A:工作示意如下![git协作流程示意.jpg](https://cos.easydoc.net/24688113/files/la90bkpm.jpg) ### Q:测试工程师怎样拉取代码? A:命令如下 ```bash # 本地同步远端仓库分支 git remote update # 切换到需测试分支 git checkout {分支名称} # 拉取需测试分支代码 git pull origin {分支名称} ```