Git 简介
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
Git基本概念
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
这张图展示了工作区、版本库中的暂存区和版本库之间的关系:
- 分支:几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。 使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
Git基本命令
一般来说,只需要会这几个命令基本就够用了。
- 使用当前目录作为Git仓库
git init - 从远程仓库克隆项目
git clone xxx.git
如果不想把这个仓库之前的提交记录也克隆下来,可以在后面添加 --depth=1 参数,这样就只会保留最后一次提交记录。同时也能提高克隆项目的速度。
- 推送本地代码到远程仓库
- 添加文件到暂存区
- 将暂存区文件添加到本地仓库
- 推送新增文件到远程仓库
git add .
git commit
git push <远程主机名> <本地分支名>
例如:以下命令将本地的 master 分支推送到 origin 主机的 master 分支。
git push origin master
最佳实践 - 提交规范
自古至今,无规矩不成方圆。 Git提交也有其规范,比较具有参考价值的就是Angular的提交。 Angular提交规范:
<type>(<scope>): <subject> #header
<body>
<footer>
格式说明
Header
Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。
例如:
feat:xxxx
type
用于说明本次commit的类别,只允许使用下面7个标识
feat:新功能(feature)fix:修补bugdocs:文档(documentation)style: 格式(不影响代码运行的变动)refactor:重构(即不是新增功能,也不是修改bug的代码变动)test:增加测试chore:构建过程或辅助工具的变动
scope
用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
subject
是 commit 目的的简短描述,不超过50个字符。
以动词开头,使用第一人称现在时,比如change,而不是changed或changes
第一个字母小写
结尾不加句号(.)
结尾
当然了,实际中,也不一定要采用Angular这种,但是你可以借鉴它的,然后自己那边再根据实际情况进行相应变动。