Git超详细总结1:夯实基础
前言
相信Git在大家的工作学习中使用度非常高,但是根据本人的经验,还是有很多人在实际操作中比较懵逼,造成很多不必要的麻烦。
所以,感觉很有必要对Git进行尽可能全面的总结。
Git-常见项目托管平台:
github:https://github.com/
码云:https://gitee.com/
Git-常用可视化管理工具
GitKraken:https://www.gitkraken.com/,支持Windows、Mac和Linux系统,github账号即可登录
Sourcetree:https://www.sourcetreeapp.com/,支持Windows、Mac系统,不支持Linux系统,注册登录自行百度,不多阐述
Git-概念
请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余。
-
直接记录快照,而非差异比较
每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 -
近乎所有操作都是本地执行
在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。 -
Git 保证完整性
Git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希)。 这是一个由 40 个十六进制字符(0-9 和 a-f)组成的字符串,基于 Git 中文件的内容或目录结构计算出来,例如:
24b9da6552252987aa493b52f8696cd6d3b00373
-
三种状态
- 已提交(committed):数据已安全的保存在本地数据库中。
- 已修改(modified):数据已修改,但是还没有保存到数据库中。
- 已暂存(staged):对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
-
三个工作区
Git三个工作区示意图
- Git仓库:Git 用来保存项目的元数据和对象数据库的地方。拷贝的就是这里的数据。
- 工作目录:对项目的某个版本独立提取出来的内容。 这些从 Git 仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改。
- 暂存区域:是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中。 有时候也被称作“索引”,不过一般说法还是叫暂存区域。
基本的 Git 工作流程如下:
- 在工作目录中修改文件。
- 暂存文件,将文件的快照放入暂存区域。
- 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。
Git-配置
Git自带一个git config
的工具来帮助设置控制 Git 外观和行为的配置变量。
-
用户信息
当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址。
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
强调:
- 如果使用了
--global
选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 - 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有
--global
选项的命令来配置。
-
文本编辑器
如果未配置,Git 会使用操作系统默认的文本编辑器,通常是 Vim。
如果你想使用不同的文本编辑器,例如 Emacs,可以这样做:
$ git config --global core.editor emacs
-
检查配置信息
如果想要检查你的配置,可以使用git config --list
命令来列出所有 Git 当时能找到的配置。
$ git config --list
user.name=John Doe
user.email=johndoe@example.com
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...
通过输入git config <key>
: 来检查 Git 的某一项配置
$ git config user.name
John Doe
Git-帮助
终端输入git help
可以查看git相关命令操作介绍
终端输入git help <command>
可以查看<command>的使用手册
$ git help merge
或者
$ git merge --help
Git-获取仓库
-
从现有目录中初始化仓库
如果你打算使用 Git 来对现有的项目进行管理,你只需要进入该项目目录并输入:
$ git init
-
克隆现有的仓库
克隆仓库的命令格式是:git clone [url]
。
例如,克隆scrapy库,可以用下面的命令:
$ git clone https://github.com/scrapy/scrapy.git
OK,关于Git基础部分的概念及相关配置方面暂时总结到这里,后面会继续更新,尽快把Git总结完全,以便后续实战。