目录
Git相关名词解释
Pull Request
我尝试用类比的方法来解释一下 pull reqeust。想想我们中学考试,老师改卷的场景吧。你做的试卷就像仓库,你的试卷肯定会有很多错误,就相当于程序里的 bug。老师把你的试卷拿过来,相当于先 fork。在你的卷子上做一些修改批注,相当于 git commit。最后把改好的试卷给你,相当于发 pull request,你拿到试卷重新改正错误,相当于 merge。
——From 知乎
Issue
项目中遇到什么问题、或者发现什么好的工具,全都放到自己的ISSUE下
- Labels,标签。包括 enhancement、bug、invalid 等,表示 issue 的类型,解决的方式。除了自带的以外,也可以去自定义。
- Milestone,里程碑。几经修改后,它现在已经与git tag和Github release区分开来,仅仅作为issue的一个集合。通常用来表示项目的一个阶段,比如demo、release等,保护达成这些阶段需要解决的问题。有时候,也会与版本计划重合,比如v1.0、v2.0等。issue不能设置截止时间,但是milestone可以。
- Assignee,责任人。指定这个 issue 由谁负责来解决。
充分利用这些功能,让每一个 commit 的意义更加明确,可以起到了良好的过程管理作用,使得这个 Git 库的项目进度更加显然。而且,这也是项目后期,写文档的绝佳素材。
各个分支的解释及其使用
主分支 Main Branch
在Git分支模型中存在两个主分支,这两个分支是不可或缺的:
- 生产分支 Master Branch
master作为Git中默认的主分支。在Git分支开发模型中,master分支的HEAD节点始终处于“准备好进行生产的状态”,即master分支的HEAD节点所指向的版本始终是可以用于生产环境的正式版本。当其他分支的代码版本合并到master分支时(随后打上版本标签,所有在Master分支上的Commit应该Tag),通常意味着一个新的正式版本已经发布。
- 开发分支Develop Branch
develop分支作为另一个主分支,其HEAD节点总是指向下一个待发布版本的最新变化。develop分支的版本变更通常来源于辅助分支的合并,因为develop分支也常被称为“整合分支”。当develop分支达到某一稳定点,可进行新版本的发布时,develop分支上的所有变更应该被合并到master分支并打上tag标签。
辅助分支 Supporting Branch
除了master分支和develop分支这两个主分支以外,Git分支模型中拥有一些“辅助分支”,在团队开发中对develop分支和master分支进行帮助,例如对新需求的研发(feature),新版本发布前的准备工作(release)以及新版本bug的紧急修复(hotfix)等。和主分支不同的是,这些分支的生命周期都是很有限的,最终都将会被删除
- 需求分支 Feature Branch
分支意义 |
需求分支用于为未来的软件版本开发新的功能需求。当进行一个需求的研发时,该需求将被整合进正式版本是未知,所以需要单独创建分支对该需求进行研发,只要该需求尚在开发中,该需求分支就会一直存在。需求分支最终会被合并到develop分支中作为下一个待发布版本的功能之一,或者由于该需求无法实现从而被抛弃。 |
分支来源 |
develop |
分支去向 |