Git学习笔记(一)
2016-02-19 15:28
211 查看
博客已迁移至:
https://fenglincanyi.github.io/
为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。
Git 对待数据更像是一个 快照流。
这是一个由 40 个十六进制字符(0-9 和 a-f)组成字符串,基于 Git 中文件的内容或目录结构计算出来。
SHA-1 哈希看起来是这样:
24b9da6552252987aa493b52f8696cd6d3b00373
实际上,Git 数据库中保存的信息都是以文件内容的哈希值来索引,而不是文件名
![](http://7xr1vo.com1.z0.glb.clouddn.com/%E6%96%87%E4%BB%B6%E7%9A%84%E7%8A%B6%E6%80%81%E5%8F%98%E5%8C%96%E5%91%A8%E6%9C%9F.png)
已跟踪:纳入了版本控制的文件,后期可能处于 未修改,已修改或放入暂存区了
未跟踪:工作目录下除已跟踪文件外的其他所有文件
![](http://7xr1vo.com1.z0.glb.clouddn.com/git3%E7%A7%8D%E5%B7%A5%E4%BD%9C%E5%8C%BA%E5%9F%9F.png)
git config –global user.name “xxx”
git config –global user.email xxx@qq.coom
此配置会写入 user目录下的 .gitconfig文件,实际上为个人信息默认值
临时配置:
去掉 –global 即可
实际是在其配置列表中追加其信息,重复变量名,不同的value值
(Git每次会读取不同文件,其中就可能含有同一个配置)
Git 会使用每个变量的最后一次的配置的值
https://fenglincanyi.github.io/
一、Git特点
1. 直接记录快照,而非差异比较
在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。
Git 对待数据更像是一个 快照流。
2. 近乎所有操作都是本地执行
在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。3. Git 保证完整性
Git 中所有数据在存储前都计算校验和,然后以校验和来引用。Git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希)。这是一个由 40 个十六进制字符(0-9 和 a-f)组成字符串,基于 Git 中文件的内容或目录结构计算出来。
SHA-1 哈希看起来是这样:
24b9da6552252987aa493b52f8696cd6d3b00373
实际上,Git 数据库中保存的信息都是以文件内容的哈希值来索引,而不是文件名
4. Git 一般只添加数据
你执行的 Git 操作,几乎只往 Git 数据库中增加数据二、Git 中的文件有3种状态:
1. 已提交:数据已经安全的保存在本地数据库中
2. 已修改:修改了文件,但未保存到数据库中
3. 已暂存:对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
![](http://7xr1vo.com1.z0.glb.clouddn.com/%E6%96%87%E4%BB%B6%E7%9A%84%E7%8A%B6%E6%80%81%E5%8F%98%E5%8C%96%E5%91%A8%E6%9C%9F.png)
三、Git 中的3个工作区域
1. Git仓库:保存项目的元数据和对象数据库,Git中最重要的部分,供其他人clone 仓库
2. 工作目录:对项目的某个版本独立提取出来的,供工作中使用、修改
工作目录下的文件状态:已跟踪:纳入了版本控制的文件,后期可能处于 未修改,已修改或放入暂存区了
未跟踪:工作目录下除已跟踪文件外的其他所有文件
3. 暂存区:是一个文件,保存下次将提交的文件列表信息,一般在Git仓库目录中,有时也被叫做索引
![](http://7xr1vo.com1.z0.glb.clouddn.com/git3%E7%A7%8D%E5%B7%A5%E4%BD%9C%E5%8C%BA%E5%9F%9F.png)
四、Git 的基本工作流程
1. 在工作目录中修改文件
2. 暂存文件,将文件的快照放入暂存区
3. 提交更新,找到暂存区的文件,将快照永久性存储到Git仓库中
五、Git 个人信息初始配置
全局信息配置:(个人默认信息)git config –global user.name “xxx”
git config –global user.email xxx@qq.coom
此配置会写入 user目录下的 .gitconfig文件,实际上为个人信息默认值
临时配置:
去掉 –global 即可
实际是在其配置列表中追加其信息,重复变量名,不同的value值
(Git每次会读取不同文件,其中就可能含有同一个配置)
Git 会使用每个变量的最后一次的配置的值
相关文章推荐
- lock 和synchronized
- intel xeon phi 常见错误记录
- UIUC大学之Coursera课程Text Retrieval and Search Engines:Week 3 Practice Quiz
- 解决phpMyAdmin最大限制
- CocoaPods 一些变化
- UIUC大学之Coursera课程Text Retrieval and Search Engines:Week 2 Quiz
- UIUC大学之Coursera课程Text Retrieval and Search Engines:Week 2 Practice Quiz
- <转载>拒绝卡顿——在WPF中使用多线程更新UI
- .gitignore 语法规则
- 浅析数据一致性
- 从2月14号开始,上传AppStore会碰到:Failed to locate or generate matching signing assets
- 浅析数据一致性
- 委托与事件
- linux vi编辑常用命令
- activity跳转关闭软件盘
- Andorid TabHost 使用小结
- 面试题中常见的内存分配问题汇总
- HDU——1009FatMouse' Trade(贪心+结构体+排序)
- Android判断一个点在不在多边形中
- IDFA的检测和通过审核