一、Git概念
1.1、Git定义
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
1.2、Git特点
- 直接记录快照,而非差异比较
- 近乎所有操作都是本地执行
- 使用 SHA-1 散列(hash,哈希)保证数据完整性
- Git 一般只添加数据
1.3、Git三种状态及三个工作区域
三种状态
已修改(modified):表示修改了文件,但还没保存到数据库中。
已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
已提交(committed):表示数据已经安全的保存在本地数据库中。
另一种角度下Git文件的两种状态:
已跟踪:已跟踪文件指被纳入了版本控制的文件,在上一次快照中有其记录。在工作一段时间后,它们的状态可能处于未修改、已修改或已暂存。
未跟踪: 工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件。 初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。
Git 文件生命周期图:
三个工作区域
工作目录:对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
暂存区域:是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。 也被称作“索引”,一般还是叫暂存区域。
Git 仓库: Git 用来保存项目的元数据和对象数据库的地方。从其它计算机克隆仓库时,拷贝的就是这里的数据。
1.4、Git 工作流程
-
在工作目录中修改文件(已修改状态)。
-
暂存文件,将文件的快照放入暂存区域(已暂存状态)。
-
提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录(已提交状态)。
二、Git配置文件
2.1、配置文件分类
(1). 通用配置文件:/etc/gitconfig ,对所有用户及其仓库的通用配置: git config --system
(2). 用户配置文件: ~/.gitconfig 文件或 ~/.config/git/config文件,只适用于该用户:git config --global
(3). 仓库配置文件: .git/config,针对该仓库,即当前使用仓库的 Git 目录中的 config 文件。
说明:
每一个级别覆盖上一级别的配置,所以 .git/config 的配置变量会覆盖 /etc/gitconfig 中的配置变量。
三、Git配置文件相关命令
获取帮助
##使用帮助的三种方法,<verb>为查询的命令
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
##查询config命令用法
$ git help config
配置用户信息
##设置用户名称、邮件地址,Git会将其写入每一次的提交信息中
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
注意:
使用了 --global 选项一次即可,之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。
##针对特定项目使用不同的用户名称与邮件地址
cd "目标目录"
$ git config user.name "John"
$ git config user.email john@example.com
文本编辑器
##设置Git默认使用的文本编辑器
$ git config --global core.editor vim (系统默认)
$ git config --global core.editor emacs
$ git config --global core.editor vi
检查配置信息
##列出 Git 所有能找到的配置
$ git config --list
##列出 Git 的某一项配置:git config <key>
$ git config user.name
注意:
列表中存在重复的变量名,因为 Git 会从不同的文件中读取同一个配置(例如:/etc/gitconfig 与 ~/.gitconfig)。 这种情况下,Git 会使用它找到的每一个变量的最后一个配置。
出处: https://www.cnblogs.com/DeepInThought
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。