Commit 05a6420a authored by 陈昊's avatar 陈昊

Merge branch 'develop' into 'master'

追加换行

See merge request !3
parents 8c2d16d6 c2cbc016
# git分支练习用项目 # git分支练习用项目
为了让项目成员能够熟悉的使用git的分支功能来更好的进行开发,特制作了本项目供所有项目成员练习 为了让项目成员能够熟悉的使用git的分支功能来更好的进行开发,特制作了本项目供所有项目成员练习<br/>
目的是让所有项目成员都能正确的使用git来对版本进行管理,而不是把git当成又一个svn 目的是让所有项目成员都能正确的使用git来对版本进行管理,而不是把git当成又一个svn<br/>
如果是不熟悉git使用的成员,建议先阅读[简单的git教程](https://git-scm.com/book/zh/v2) 如果是不熟悉git使用的成员,建议先阅读[简单的git教程](https://git-scm.com/book/zh/v2)<br/>
本项目的分支分类参考了[这篇文章](http://www.ruanyifeng.com/blog/2012/07/git.html) 本项目的分支分类参考了[这篇文章](http://www.ruanyifeng.com/blog/2012/07/git.html)<br/>
## 项目分支介绍 ## 项目分支介绍
### master分支 ### master分支
这是项目的正式版本分支,只有项目的维护者可以操作该分支 这是项目的正式版本分支,只有项目的维护者可以操作该分支<br/>
通常,除了紧急bug修改直接push以外,该分支一般从develop分支合并而来 通常,除了紧急bug修改直接push以外,该分支一般从develop分支合并而来<br/>
master分支包含每一次正式发布后的版本,不包括开发过程中的任何版本 master分支包含每一次正式发布后的版本,不包括开发过程中的任何版本<br/>
### develop分支 ### develop分支
这是项目的开发版本分支,项目成员负责的部分开发完成时应该把分支合并到此分支 这是项目的开发版本分支,项目成员负责的部分开发完成时应该把分支合并到此分支<br/>
若需要发布到正式站点,则需要向维护者发布合并请求,并等待维护者把develop分支合并至master分支 若需要发布到正式站点,则需要向维护者发布合并请求,并等待维护者把develop分支合并至master分支<br/>
develop版本包含了每一次**完整的功能修改**的版本,不包括功能开发中途的版本 develop版本包含了每一次**完整的功能修改**的版本,不包括功能开发中途的版本<br/>
### 功能分支 ### 功能分支
功能分支应以“feature-”为前缀,当开发一个新功能时,应创建一个功能分支,并在功能开发完成后,将其合并到develop分支上 功能分支应以“feature-”为前缀,当开发一个新功能时,应创建一个功能分支,并在功能开发完成后,将其合并到develop分支上<br/>
例如,开发用户登陆功能的时候,可以新建分支名为“feature-userlogin190315”,并在功能完成后将其并入develop分支 例如,开发用户登陆功能的时候,可以新建分支名为“feature-userlogin190315”,并在功能完成后将其并入develop分支<br/>
若功能开发完成后,产品表示不需要上线,也可以先挂着不合并到develop分支 若功能开发完成后,产品表示不需要上线,也可以先挂着不合并到develop分支<br/>
当功能合并到develop分支后,应及时删除该分支 当功能合并到develop分支后,应及时删除该分支<br/>
### bug修复分支 ### bug修复分支
bug修复分支应以“fix-”为前缀,当一个版本遭遇bug时,创建一个bug修复分支,并将其合并到master和develop分支 bug修复分支应以“fix-”为前缀,当一个版本遭遇bug时,创建一个bug修复分支,并将其合并到master和develop分支<br/>
典型的bug修复分支命名,如“fix-ch190315” 典型的bug修复分支命名,如“fix-ch190315”<br/>
在完成bug修复后,应及时删除该分支 在完成bug修复后,应及时删除该分支<br/>
### release分支 ### release分支
仅由维护者使用的分支 仅由维护者使用的分支<br/>
在维护者担心本次发布可能会导致项目无法正常运行的时候,可以临时从develop分支下建立该分支,在确认项目可以正常运行后再合并到master分支 在维护者担心本次发布可能会导致项目无法正常运行的时候,可以临时从develop分支下建立该分支,在确认项目可以正常运行后再合并到master分支<br/>
在完成合并以后,应及时删除release分支 在完成合并以后,应及时删除release分支<br/>
## 如何操作分支 ## 如何操作分支
1. 创建并切换到指定分支 1. 创建并切换到指定分支
``` ```
git checkout -b 分支名称 git checkout -b 分支名称
``` ```
在进行具体任务的开发前,请使用该命令创建功能分支和bug修复分支。 在进行具体任务的开发前,请使用该命令创建功能分支和bug修复分支。<br/>
2. 切换到指定分支 2. 切换到指定分支
``` ```
git checkout 分支名称 git checkout 分支名称
``` ```
在切换分支前,记得先把当前的修改提交到自己的临时分支上。以确保切换过去的时候项目是干净的。 在切换分支前,记得先把当前的修改提交到自己的临时分支上。以确保切换过去的时候项目是干净的。<br/>
3. 第一次推送自己的临时分支到远程库 3. 第一次推送自己的临时分支到远程库
``` ```
git push --set-upstream origin 分支名称 git push --set-upstream origin 分支名称
``` ```
**若你的当前分支已经存在于远程库,那么只需要简单的git push即可** **若你的当前分支已经存在于远程库,那么只需要简单的git push即可**<br/>
4. 把指定分支合并到当前分支 4. 把指定分支合并到当前分支
``` ```
git merge 分支名称 git merge 分支名称
``` ```
权限调整后,开发人员只能把自己工作的临时分支合并到develop分支。而如果想要合并到master分支,则只能通过项目管理页面左侧的“合并请求”来建立请求,并让项目维护者进行合并 权限调整后,开发人员只能把自己工作的临时分支合并到develop分支。而如果想要合并到master分支,则只能通过项目管理页面左侧的“合并请求”来建立请求,并让项目维护者进行合并<br/>
**合并分支时,一定要注意处理分支的冲突** **合并分支时,一定要注意处理分支的冲突**
5. 删除临时分支 5. 删除临时分支
``` ```
git branch -d 分支名称 git branch -d 分支名称
``` ```
当一个临时分支不再需要之后,应该将其删除以避免项目分支太多导致项目混乱 当一个临时分支不再需要之后,应该将其删除以避免项目分支太多导致项目混乱<br/>
通常一个功能分支在合并到develop分支之后就可以删除了,而一个bug修正分支则必须等到维护人员将其合并到master分支以后才可删除 通常一个功能分支在合并到develop分支之后就可以删除了,而一个bug修正分支则必须等到维护人员将其合并到master分支以后才可删除<br/>
6. 关于合并分支时冲突的处理 6. 关于合并分支时冲突的处理
具体参照本页顶部提及的[这篇文章](https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6)下方的“遇到冲突时的分支合并”一 具体参照本页顶部提及的[这篇文章](https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6)下方的“遇到冲突时的分支合并”一<br/>
## 作业 ## 作业
在本项目下面,有个名为work的文本文件,所有成员需要通过修改该文件来完成作业 在本项目下面,有个名为work的文本文件,所有成员需要通过修改该文件来完成作业<br/>
每一个项目成员必须**按顺序**完成以下任务来完成作业: 每一个项目成员必须**按顺序**完成以下任务来完成作业:<br/>
1. 在任意目录下拉取本项目 1. 在任意目录下拉取本项目
2. 在develop分支下新建一个功能分支,命名为“feature-”+项目成员名字拼音或拼音缩写(如“feature-chenhao”) 2. 在develop分支下新建一个功能分支,命名为“feature-”+项目成员名字拼音或拼音缩写(如“feature-chenhao”)
3. 在新的分支上打开work.txt文件,在最后一行添加上自己的名字和当天日期,并换行(如“陈昊 2019-03-15”) 3. 在新的分支上打开work.txt文件,在最后一行添加上自己的名字和当天日期,并换行(如“陈昊 2019-03-15”)
4. 完成修改后,提交到功能分支。**注意:是提交到功能分支,而不能直接提交到develop分支** 4. 完成修改后,提交到功能分支。**注意:是提交到功能分支,而不能直接提交到develop分支**
5. 确认提交成功后,将功能分支合并到develop分支 5. 确认提交成功后,将功能分支合并到develop分支
6. 删除功能分支,并推送develop分支到远程库 6. 删除功能分支,并推送develop分支到远程库**注意:除非有需求是当前功能分支需要和其他项目成员一起协作完成,否则不建议推送功能分支到远程库**
7. 发起合并请求,等待项目管理人将develop分支合并到master分支 7. 发起合并请求,等待项目管理人将develop分支合并到master分支
8. **在项目管理人完成分支合并以后**,从master分支下新建一个bug修复分支,命名为“fix+”+自己的拼音缩写+当天日期(如“fix-ch190315”) 8. **在项目管理人完成分支合并以后**,从master分支下新建一个bug修复分支,命名为“fix+”+自己的拼音缩写+当天日期(如“fix-ch190315”)
9. 在work.txt文件中,有自己的名字那一行的行末,添加文本“ bugfixed”+当天日期(如“bugfixed190315”) 9. 在work.txt文件中,有自己的名字那一行的行末,添加文本“ bugfixed”+当天日期(如“bugfixed190315”)
10. 提交修改到bug修复分支,将其合并到develop分支以后,分别推送develop分支和bug修复分支到远程库,同时发起bug修复分支合并请求 10. 提交修改到bug修复分支,将其合并到develop分支以后,分别推送develop分支和bug修复分支到远程库,同时发起bug修复分支合并请求
11. 等待项目管理人把bug修复分支合并到master分支,任务完成 11. 等待项目管理人把bug修复分支合并到master分支,任务完成
<br/>
**注意:提交代码的时候记得遵守编码规范,不要使用没有意义的提交说明** **注意:提交代码的时候记得遵守编码规范,不要使用没有意义的提交说明**
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment