版本控制器 (Version Control Systems)
- 在未有工作工具流之前,使用的文件夹目录拷贝,效率低下,沟通成本高.
- 集中式版本控制系统
- SVN、VSS
- 分布式版本控制系统
- Git
由于因在工作中只用过git版本控制器,也就是分布式版本控制器.所以只总结git的使用.并且最近在极客时间
上学习苏玲
老师的「玩转git三剑客」
的视频课程,一起学习,一起总结.
Git
Git优势如下 :
- 最优的存储能力
- 非凡的性能
- 开源的
- 很容易做备份
- 支持离线操作
- 很容易定制工作流程
Git下载
Git最小配置
给git配置用户名和用户邮箱
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
git config [--local | --global | --system] user.name 'Your name' // 名称设置
git config [--local | --global | --system] user.email 'Your email' // 邮箱设置
--local 区域内本仓库
--global 全局仓库有效
--system 系统登录用户有效
// 设置之后 可以通过下面命令来查看设置是否成功
git config --list --global
// 设置的是全局 需加上--global 对全局查看
// 若为local 必须有一个本地项目仓库
// 清除命令
git config unset [--local | --global | --system] user.name 'Your name' // 名称设置
git config unset [--local | --global | --system] user.email 'Your email' // 邮箱设置
</br>
——2018.12.24日更新——
为每个项目添加.gitignore文件
通常提交项目会习惯性使用
git add .
的命令,这样的操作会将目录中所有文件都添加到文件暂缓区(git status 所展示的文件和文件所在地址),而实际项目提交当中会引用到大量的第三方库、方法,会导致将node_modules
整个文件夹提交到暂缓区,推送到远程仓库会造成效率降低。所以会在每个项目文件夹中添加.gitignore
文件来默认不上传这些文件。
如:
1 | .DS_Store |
上述文件是通过vue-cli
自动构建项目目录下的.gitignore
文件,默认git不提交各类编译器的配置文件
和第三方npm包、方法、插件
文件。
Git commit 规范
引用
@知乎者也
的微信公众号文章:「我的commit规范」→ 传送门
还有@囧克斯
的译文作为参考:「如何撰写Git提交信息」→传送门
git commit 信息应具有
1 | <Header> |
例如:
1 | 说了半天不给个例子都是瞎扯淡,下面是一个完整的例子: |
Git操作
观看
「玩转git三剑客」
并新建git-test
项目来进行Git的深度学习
建Git仓库
两种场景:
- 已有代码构建Git仓库:
1 | $ cd 项目所在目录 |
- 新建项目直接用Git管理:
1 | $ cd 某个文件夹 |
Git基础命令
将编辑或修改过的文件提交到Git文件暂存区
:
1 | ***.gitignore文件内添加的内容将不会提交到Git文件 暂存区*** |
查看Git文件暂存区
(git status):
1
$ git status || $ gst
为添加到Git文件暂存区
的文件添加描述(git commit):
1 | *** 简单描述 *** |
已添加到Git文件暂存区
文件进行重命名(git mv):
1 | *** 例如文件名A重命名为B *** |
查看Git提交历史(git log):
1 | *** 查看完整历史 *** |
Git图形界面命令
1 | $ gitk |
.git目录(cat-file 命令查看文件)
cat命令主要用来查看文件内容,创建文件,文件合并,追加文件内容等功能。
1 | *** .git文件夹里所包含的东西 *** |
commit、tree和blob对应关系
Git有3大对象,commit、tree和blob,它们之间对应关系类似于树.
例如: 本次提交信息中新增了index.html
文件和style.css
文件以及logo.png
图片文件,此时执行git add .
命令之后,执行git commit
填写完描述信息过后,会生成对应的commit文件.
1 | *** 此时结构应该如下 *** |
__END__