认识Git
Git每次对全部文件制作一个快照,并保存这个快照的索引。可以认为Git是在管理一个文件系统,参考文件系统的快照的概念。
Git的大部分操作是在本地执行的,本地.git目录存储了操作的历史。
Git的数据在存储前会计算校验和,该校验和用于引用文件内容。
Git的操作都会在Git数据库中增加数据,留下操作历史,出现问题可以进行恢复。
Git中有三种文件状态:
- 已提交Committed,数据已安全保存在本地数据库
- 已修改Modified,文件的修改未保存到数据库
- 已暂存Staged,对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
对应文件的三种状态,Git项目有三个工作区域: - 工作区WorkingDirectory,即日常使用修改文件的区域,对应项目的某个版本
- 暂存区StagingArea,一个文件,保存了下次将提交的文件列表信息
- Git仓库.git,保存项目的元数据和git数据库
基本的Git工作流程:
- 修改文件,文件仍处于工作区,是已修改状态
- 暂存文件,将文件的修改放入暂存区,变为已暂存状态
- 提交更新,将暂存区文件快照存储到Git仓库,变为已提交状态。
安装
Fedora安装:
$ sudo yum install git
Debian安装:
$ sudo apt-get install git
jumbo安装
$ jumbo install git
配置
配置工具:git config
配置变量存储位置:
/etc/gitconfig
,系统每个用户的通用配置,--system
选项~/.gitconfig
或者~/.config/git/config
,当前用户的配置,--global
选项.git/config
,当前git仓库(项目)的配置
最终.git/config
会覆盖/etc/gitconfig
中的配置
配置用户的用户名、邮件地址
$ git config --global user.name "JohnDoe"
$ git config --global user.email johndoe@mail.com
在特定项目的目录下配置特定的用户名、邮件,仅对该项目有效:
$ git config user.name "John"
$ git config user.email john@mail.com
配置文本编辑器:
$ git config --global core.editor emacs
查看所有配置:
$ git config --list
查看某项配置:
$ git config <key>
$ git config user.name
帮助手册
以下方法均可:
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
$ git help config 查看config的手册