《玩转Git三剑客》
本文为 Git 学习的笔记。参考课程为极客时间的《玩转 Git 三剑客》以及《Pro Git》这本书。笔记有很强的主观性,如果你要拿来学习的话,仅供参考!
课程综述
版本管理的演变
版本管理系统
英文缩写 —— VCS
- VCS 出现前
- ⽤⽬录拷⻉区别不同版本
- 公共⽂件容易被覆盖
- 成员沟通成本很⾼,代码集成效率低下
- 集中式 VCS(CVS、SVN)
- 有集中的版本管理服务器
- 具备⽂件版本管理和分⽀管理能⼒
- 集成效率有明显地提⾼
- 客户端必须时刻和服务器相连
- 分布式 VCS(Git)
- 服务端和客户端都有完整的版本库
- 脱离服务端,客户端照样可以管理版本
- 查看历史和版本⽐较等多数操作,都不需
- 要访问服务器,⽐集中式 VCS 更能提⾼版
- 本管理效率
- Git 特点
- 最优的存储能⼒
- ⾮凡的性能
- 开源的
- 很容易做备份
- ⽀持离线操作
- 很容易定制⼯作流程
课程内容
- Git
- 工作原理
- 如何使用
- GitHub
- 全球最大开源社区
- GitHub 生态
- GitLab
- 一般的公司会基于 GitLab 做自己平台的二次开发
初次运行 Git 前的配置
安装完 Git 应该做的第一件事就是设置你的用户名
与邮件地址
。 这样做很重要,因为每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改:
1 | $ git config --global user.name "John Doe" |
config
的三个作用域:
1 | // 只对仓库有效(权限最高) |
查看设置:
1 | $ git config --list --local |
清除设置:
1 | git config --unset --local user.name |
给文件重命名的简便方法
常用方法:
在工作区
重命名文件,此时执行git status
会提示添加新文件和删除旧文件。然后我们添加新文件到暂存区
,并删除旧文件,步骤繁琐,并且重命名的过程并不直观。
简便方法:
1 | git mv 旧名称 新名称 |
直接在暂存区修改,一步到位!
.git
目录、commit、tree 和 blob
:::tip
这几节课程作者开始讲解关于 Git 原理的东西,但是讲的很没有章法。想更好的理解这一部分的知识点,可以参考《Pro Git》的Git 内部原理
这一章。
:::
下面对于 Git 的原理进行基本梳理:
首先要弄明白一点,从根本上来讲 Git 是一个内容寻址
(content-addressable)文件系统,并在此之上提供了一个版本控制系统的用户界面。
Git 进行版本管理的信息全部存放于.git
文件夹。
1 | $ ls .git |
未完待续…