Git 基础
基本原理
客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。每一次的克隆操作,实际上都是一次对代码仓库的完整备份。
Git的优势
直接记录快照

Git 更像是把数据看作是对小型文件系统的一组快照。 每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个 快照流。

如图,在version2中的 B 即是因为 File B 没有改变,所以直接存储了一个指向 FileB 的链接。只有修改了的文件才会产生一个新的文件,覆盖原来的文件。

几乎所有操作都在本地执行
在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。因为你在本地磁盘上就有项目的完整历史,所以大部分操作看起来瞬间完成。
Git保证完整性
Git 中所有数据在存储前都计算校验和,然后以校验和来引用。Git 用以计算校验和的机制叫做 SHA-1 散列(hash,哈希)。Git 数据库中保存的信息都是以文件内容的哈希值来确定的,而不是文件名。
这意味着不可能在 Git 不知情时更改任何文件内容或目录内容。 这个功能建构在 Git 底层,是构成 Git 哲学不可或缺的部分。 若你在传送过程中丢失信息或损坏文件,Git 就能发现。
Git一般只添加数据
你执行的 Git 操作,几乎只往 Git 数据库中增加数据。 很难让 Git 执行任何不可逆操作,或者让它以任何方式清除数据。 同别的 VCS 一样,未提交更新时有可能丢失或弄乱修改的内容;但是一旦你提交快照到 Git 中,就难以再丢失数据,特别是如果你定期的推送数据库到其它仓库的话。这个特性使得我们可以尽情的尝试对Git进行操作而不用害怕把它改坏了,只需要回滚即可。
需要注意的重点
三种状态

已提交 committed :数据已经保存在本地 Git 仓库

已修改 modified : 修改了文件,但是还没保存在仓库中

已暂存 staged : 对一个已修改的文件的当前版本做了标记


三个区域
工作目录 Working Directory :对项目的某个版本独立提取出来的内容,这些从Git仓库的压缩数据库提取出来的文件,放在磁盘上供你使用或修改。
暂存区域 Staging Area :是一个文件,保存了下次将提交的文件列表,是待提交文件的暂存区域。一般在Git仓库的目录中,有时也被称为索引。
Git仓库:用来保存项目的元数据和对象数据库的地方。是Git中最重要的部分,从其他计算机克隆仓库时拷贝的就是这里的数据
基本的Git工作流程
在工作目录中修改文件
暂存文件,将文件的快照存储在暂存区域
提交更新,找到暂存区域的位置,将快照永久性存储到Git仓库目录
o提交状态:如果Git目录中保存着特定版本的文件,就属于已提交状态。
o暂存状态:如果做了修改并且已经放入暂存区域,就属于暂存状态。
o已修改状态:如果自上次取出后,做了修改但是还没有存在暂存区域,就是已修改状态。
基本的Git操作流程
基础设置

首先最基础的是需要配置用户信息


关于 config 的种类

接着需要检查你的配置信息,使用 $ git config --list 指令检查全部配置信息,结果如下:
总结
本次 Git 基础学习总结到现在就告一段落,这是我对 Git 的使用了解,以上内容讲述的也不是很完整,还希望和大家多多学习一下。

©著作权归作者所有:来自51CTO博客作者mb5fcf1f02dcdd1的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Java Web: 发送请求,CSS文件 和 JS文件引用失败
  2. 附实战代码|告别OS模块,体验Python文件操作新姿势!
  3. 让Python在后台自动解压各种压缩文件!
  4. 10行Python代码自动清理电脑内重复文件,解放双手!
  5. 用Python打造一款文件搜索工具,所有功能自己定义!
  6. Python办公自动化|自动整理文件,一键完成!
  7. Python地信专题 | 基于geopandas的空间数据分析-文件IO篇
  8. n种方式教你用python读写excel等数据文件
  9. java 读取 application配置文件

随机推荐

  1. Android使用FFmpeg(一)--编译ffmpeg
  2. android中求区域内两个坐标之间的距离的
  3. 《Gradle 权威指南》读书笔记——第八章
  4. Android Studio(七):项目从Eclipse到Andro
  5. 如何调用android内置图片,比如menu->add的
  6. Android SDK Download List
  7. Android Context 详解
  8. Android(安卓)网络通信框架Volley简介
  9. Android(安卓)GridView显示一行,左右滑动
  10. Android(安卓)输入键盘弹出隐藏监听