引子
Git 学习文档
Git 介绍
- 版本控制系统
- 分布式
Git 安装
linux 系统
Linux系统自带的软件包 没有不能装git的了吧
1 | $ yum install git |
1 | $ apt-get install git |
Macos
通过 homebrew 安装
Windows
直接下载软件包安装
配置 用户名和邮件地址
1 | $ git config --global user.name "Your Name" |
版本库 工作区 暂存区
- 创建文件夹
1 | $ mkdir learngit |
- 初始化仓库
1 | $ git init |
- 查看当前状态
1 | $ git status |
- 添加一个文件
1 | $ vi readme.md |
写入内容1
Git
- 第二次查看当前状态
1 | $ git status |
- git add 将文件添加到仓库
1 | $ git add readme.md |
- 第三次查看当前状态
1 | $ git status |
- 将文件提交到仓库[git commit]
1 | git commit -m "commit a readme file" |
参数 -m 表示提交的注释,所有提交都需要写上注释
- 第四次查看当前状态
1 | $ git status |
这个地方需要解释一下
Git 有以下几个概念,要将他们搞清楚
Git 基本就能顺畅的使用了
- 工作区/工作空间 (Working Directory)
这个很容易理解,就是你电脑里面的文件夹
- 版本库(Repository)
两个 一个是本地版本库,一个是远程版本库
暂时先说本地版本库 本地的隐藏目录.git
工作区的修改会先提交到本地版本库中,再由本地版本库同步到远程版本库
- 暂存区
这个是版本库里面的
第一次 在工作区中添加了文件,查看了一下状态,为 Untracked 未跟踪
第二次 git add readme.md ,其实就是将readme.md 添加到stage 暂存区里面,而且存的是修改这时查看状态就是 Changes to be committed ,准备提交
第三次 git commit -m”commit a readme file” 就是真正的将修改提交到本地分支上,当前为master
提交完以后,工作区就是“干净”的。
查看Log
Git 提供了强大的Log命令,我列举几个
- 默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面。看到了吗,每次更新都有一个 SHA-1 校验和、作者的名字和电子邮件地址、提交时间,最后缩进一个段落显示提交说明。
1 | git log |
- 我们常用 -p 选项展开显示每次提交的内容差异,用 -2 则仅显示最近的两次更新:
1 | git log -p -2 |
- git log —stat,仅显示简要的增改行数统计:
1 | git log --stat |
- git log —pretty=oneline 将每个提交放在一行显示 , 还可以用 short,full 和 fuller
1 | git log --pretty=oneline |
- 最有意思的是 format,可以定制要显示的记录格式,这样的输出便于后期编程提取分析,像这样:
1 | git log --pretty=format:"%h - %an, %ar : %s" |
定制语法
选项 | 说明 |
---|---|
%H | 提交对象(commit)的完整哈希字串 |
%h | 提交对象的简短哈希字串 |
%T | 树对象(tree)的完整哈希字串 |
%t | 树对象的简短哈希字串 |
%P | 父对象(parent)的完整哈希字串 |
%p | 父对象的简短哈希字串 |
%an | 作者(author)的名字 |
%ae | 作者的电子邮件地址 |
%ad | 作者修订日期(可以用 -date= 选项定制格式) |
%ar | 作者修订日期,按多久以前的方式显示 |
%cn | 提交者(committer)的名字 |
%ce | 提交者的电子邮件地址 |
%cd | 提交日期 |
%cr | 提交日期,按多久以前的方式显示 |
%s | 提交说明 |
还有图形化的工具可用
1 | gitk |
Git 学习系列
等待后续