参考:极客时间 玩转Git三剑客
1. Git
1.1 初始化
- username email
- 保证变更信息能够溯源
- Code Review
- local 某个仓库生效
- global 全局生效
- System 对系统所有登录用户有效
- config --list 显示配置信息
1.2 基本操作流程
- git init 初始化一个工作区
- git local 可以设置本地文件
- git 提交流程 先 add 再 commit
- git status 查看当前状态
- git log 查看日志
- Git 工作区和暂存区
- git add -u 将已经跟踪了的文件进行保存
- 先在工作目录修改 再保存到暂存区 最后进行提交
1.3 Git 文件重命名
- 问题: 如果直接重命名,需要删除原有文件,然后将新的文件进行添加,比较麻烦
- git reset --hard 回退操作
- git mv src tar 直接修改文件名
1.4 Git log 查看版本历史
- git log --oneline 简洁查看
- git log -n4 查看最近4条记录
- git branch -v 查看本地分支
- git log --all 所有分支的版本
- git log --graph 查看版本演进图
- git help 可以查看相关详细内容
1.5 gitk 图像版本查看工具
1.6 .git 目录探秘
-
HEAD 一个指针 指向了当前的分支
-
config 当前仓库的相关信息 git local 就是修改了当前仓库的 config 文件
-
refs/
其中 head/ 就是指针 tags/ 是重要的里程碑
master 中的内容是一个 commit 类型,是一个指针
tags/ 中存放的也是 commit 的指针 -
objects/ 目录
object 中的内容是 tree 和 blob
- git cat-file -t 可以查看 hash 值对应的文件 类型
1.7 commit tree blob 三种对象
一个 commit 对应一个 tree
tree 是一个文件内容变化的状态树
blob 是具体的某个文件 和文件名没有关系,只要内容相同,就是同一个 blob,节省了存储空间
$ git cat-file -p xxx 可以查看文件的类型