【1】GIT使用规范的意义:提高团队整体的交流和运作效率
【2】使用规范
- 能够独立部署的工程使用master和dev两个主干分支,master分支对应线上版本,dev分支对应开发版本; 作为依赖库使用的工作只需要一个master分支即可。master和dev分支只能由开发组长合并及提交,其余人员需要在各自分支上进行开发工作。
- GIT提交尽量遵循单次提交的代码是对一个完整但是影响尽量小的功能的修改,不要把对几个功能的修改混在一起提交。
- GIT注释的第一行必须以小写task或者bug,加禅道上对应的任务或者BUG的ID,再加半角冒号开头。 注释最少应该写清楚本次做的修改和达到的效果,越详细越好。 注释首行的字符数应该在15-120个之间。如果注释长度多于120字符,则首行写概要性信息,空一行,然后写详细信息,类似于邮件格式。
- 分支最好从正式版的tag拉出,正式版tag查看。 分支名字必须有明确的含义,以方便管理。功能上线后,对应的分支应该及时删除。分支名字推荐的命名方法为:以user/开头,加task或者bug,再加禅道上对应的task或者bug的id。其中以user/开头为强制性规定。
- 如果因注释而提交不成功,请按照常用操作的 重写上一次注释 和 重写前几次注释 的说明进行注释重写
【3】学习资料:Pro Git中文版
【4】环境配置:
- 根据 GIT安装教程安装GIT
-
在任意文件夹(Windows)下右击,点击git bash here打开git命令行,执行如下命令:
git config --global user.name "开发人员的中文姓名"--git config --global user.name "Marklin" - git config --global user.email "开发人员的注册邮箱"--git config --global user.email marklin1992@outlook.com
-
本地生成public key. 在git命令行中,执行如下命令:
ssh-keygen -C "开发人员的注册邮箱"--ssh-keygen -t rsa -C "marklin1992@outlook.com"这里的邮箱必须与第二步中设置的邮箱一致。输入命令后后续的提示输入都直接按回车,使用默认值即可。 - 本次操作后会生成文件 {user.dir}/.ssh/id_rsa.pub
- 登录到Github并登录点击右上角用户名->settings->SSH Public Keys,将id_rsa.pub中的内容复制进去,点击Add即可。
【5】常用操作
1.别名配置(后续步骤基础)
git config –global alias.st status #设置完后 git st = git status
git config –global alias.ci commit
git config –global alias.co checkout
git config –global alias.br branch
git config –global alias.ci commit
git config –global alias.co checkout
git config –global alias.br branch
2.Clone(下载)项目
git clone project-url #按照gerrit上的提示操作即可
3.查看状态
git status #最常用的操作,会给出明确的提示
4.查看分支(tag)
git br #查看本地分支,当前分支颜色是绿色,前面有个 *
git br -a #查看所有分支,其中的远程分支可用户切换分支使用
git br -a #查看所有分支,其中的远程分支可用户切换分支使用
5.切换分支
git co branch-name #branch-name指已经存在的分支名称
6.新建分支
git br branch-name #从当前分支的当前commit新建一个分支
git co branch-name #切换到新建的分支,切换的时候会携带未提交的修改
git co branch-name #切换到新建的分支,切换的时候会携带未提交的修改
7.拉取远程修改
git pull #会拉去包括tag在内的信息
8.提交修改
git add . –A #将当前目录下的所有更改都添加到缓存区
git ci #将缓存区的更改提交到本地库
git ci #将缓存区的更改提交到本地库
9.打标签
git tag tag-name #在当前commit上打一个tag
git tag tag-name commitId #在commitId上打一个tag
git tag tag-name commitId #在commitId上打一个tag
10.推送修改
git push #将当前分支的更改推送到远程分支
git push –tags #将当前分支及所有新打的tag推送到远程服务器
git push –tags #将当前分支及所有新打的tag推送到远程服务器
11.合并分支
git co master #将当前分支切换到master
git merge dev #将dev分支的修改切换到master
git merge dev #将dev分支的修改切换到master
12.删除远程分支或者tag
git push origin –delete branch-name #删除远程分支,需要gerrit权限
git push origin --delete tag tag-name #删除远程tag,需要gerrit权限
git push origin --delete tag tag-name #删除远程tag,需要gerrit权限
13.重写上一次注释
#如果提交后立即发现注释写错了,即只需要重写上一次的注释,在这些如下命令;
git ci –amend
git ci –amend
14.重写前几次注释
慎用git reset操作,尤其是reset已经推送到远程服务器上的commit。
如果发现之前的几次提交注释写错了,找到写错注释的前一个commitId,假设为abcdefg,执行
如果发现之前的几次提交注释写错了,找到写错注释的前一个commitId,假设为abcdefg,执行
git reset –-soft abcdefg #类似将abcdefg之后的git ci命令取消,并且将git add命令合并得到的结果。然后执行
git ci #和正常提交一样写注释。
git ci #和正常提交一样写注释。
15.取消发布(慎用!配合操作!)
场景:1.0.0已经发布,计划功能F1,F2,F3,以及不过B1,B2需要在1.1.0发布,
分支F1,F2,F3,B1,B2都已经合到dev上了,并且已经发布了1.1.0-b1,1.1.0-b2两个beta版。
此时F1功能因种种原因需要取消,此时需要执行如下操作:
分支F1,F2,F3,B1,B2都已经合到dev上了,并且已经发布了1.1.0-b1,1.1.0-b2两个beta版。
此时F1功能因种种原因需要取消,此时需要执行如下操作:
git co dev #切换到dev分支。
git tag -d 1.1.0-b1 #删除本地tag 1.1.0-b1
git tag -d 1.1.0-b2 #删除本地tag 1.1.0-b2
git reset –hard 1.0.0 #将所有合并撤销,恢复dev到1.0.0的状态。
git merge F2 #重新合并F2
git merge F3 #重新合并F3
git merge B1 #重新合并B1
git merge B2 #重新合并B2
git tag 1.1.0-b1 #重新打tag 1.1.0-b1
git push origin –delete tag 1.1.0-b1 #删除远程分支1.1.0-b1
git push origin –delete tag 1.1.0-b2 #删除远程分支1.1.0-b2
git push -f origin dev #使用本地dev分支强制更新远程dev分支
git push -tags #推送本地tag到远程服务器
git tag -d 1.1.0-b1 #删除本地tag 1.1.0-b1
git tag -d 1.1.0-b2 #删除本地tag 1.1.0-b2
git reset –hard 1.0.0 #将所有合并撤销,恢复dev到1.0.0的状态。
git merge F2 #重新合并F2
git merge F3 #重新合并F3
git merge B1 #重新合并B1
git merge B2 #重新合并B2
git tag 1.1.0-b1 #重新打tag 1.1.0-b1
git push origin –delete tag 1.1.0-b1 #删除远程分支1.1.0-b1
git push origin –delete tag 1.1.0-b2 #删除远程分支1.1.0-b2
git push -f origin dev #使用本地dev分支强制更新远程dev分支
git push -tags #推送本地tag到远程服务器
【5】GIT工作流程图
相关推荐
内置系统设置,上传管理,权限管理,模块管理,插件管理等功能,独有的Builder页面自动生成技术节省50%开发成本,先进的最终开发的支持让开发成本一降再降,致力于为个人和中小型企业打造全方位PHP企业级开发解决...
这是一门使用Java语言,SpringBoot框架,从0开发一个RESTful API应用,接近企业级的项目(我的云音乐),课程包含了基础内容,高级内容,项目封装,项目重构等知识,99%代码为手写;因为这是项目课程;所以不会深入...
zheng项目不仅仅是一个开发架构,而是努力打造一套从前端模板 - 基础框架 - 分布式架构 - 开源项目 - 持续集成 - 自动化部署 - 系统监测 - 无缝升级 的全方位J2EE企业级开发解决方案。 zheng项目是一个基于Spring+...
Git 提交前验证以及提交规范已做好 封装的比较完善的 axios,有一丢丢的学习成本 Vue 和 VueRouter 的 API 自动引入,你还可以配置更多的 API 自动引入 封装了一个 useRequest,让接口请求变得更加简单 自带一个基础...
mobx_antd_react中后台SPA完整项目脚手架。写在前面这是一个不断迭代,...统一了以上场景的公共业务基于路由和组件的按需加载模块style和js使用lint限制,git hooks强制统一资源代码风格业务场景模块抽离规范列表继
J2EE是sun公司开发的一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法...
05 js练习之二级联动 06 jquery以及jquery对象介绍 07 jquery选择器 08 jquery的查找筛选器 09 jquery练习之左侧菜单 第44章 01 jquery属性操作之html,text,val方法 02 jquery循环方法和attr,prop方法 03 jquery...
《阿里巴巴Java开发手册》,是首个对外公布的企业级Java开发手册, 意义重大。 我们结合唯品会的内部经验,参考《Clean Code》、《Effective Java》等重磅资料,增补了一些条目,同时删减了一些相对不那么通用的规则...
这是第二部分,两个部分需要一起下载后,放在同一级目录,解压即可。 目录 第1篇 了解开源软件 第1章 开源软件概述 2 1.1 开源软件的理解 2 1.2 开源软件的定义 3 1.3 开源软件定义的意义 5 1.4 开源软件和其他...
为Web应用/企业级微服务应用/移动端跨平台应用等开发技术提供支持 开发环境 IntelliJ IDEA Ultimate 2020.3.2(OpenJDK 11.0.9) Git 2.30 文件资料 在线Java教程 示例集合 / java-examples,课程示例