git 学习1

本地版本控制

RCS 在硬盘上保存补丁集(补丁是指文件修订前后的变化),通过应用所有的补丁,可以重新计算出各个版本的文件内容。


image.png

集中化版本控制

(Centralized Version Control Systems,简称 CVCS)


image.png

目的:解决不同系统上的开发者协同工作

这类系统,诸如 CVS、Subversion 以及 Perforce 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本
优点:

  1. 可以在一定程度上看到的其他人正在做些什么
  2. 管理员也可以轻松掌控每个开发者的权限
  3. 管理一个 CVCS 要远比在各个客户端上维护本地数据库来得轻松容易。
    缺点:
  4. 中央服务器的单点故障导致 无法协同工作,数据丢失

分布式版本控制系统

(Distributed Version Control System,简称 DVCS)
像 Git、Mercurial、Bazaar 以及 Darcs 等,客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。


image.png

Git

CVS 是基于差异的版本控制


image.png

Git 更像是把数据看作是对小型文件系统的一系列快照

image.png
近乎所有操作都是本地执行

离线几乎可以进行任何操作,如你在飞机或火车上想做些工作,就能愉快地提交(到你的 本地 副本,还记得吗?) 直到有网络连接时再上传,而用 Subversion 和 CVS 的话, 你能修改文件,但不能向数据库提交修改

Git 保证完整性

Git 中所有的数据在存储前都计算校验和,然后以校验和来引用。 这意味着不可能在 Git 不知情时更改任何文件内容或目录内容
Git 数据库中保存的信息都是以文件内容的哈希值来索引,而不是文件名。

Git 一般只添加数据
三种状态

文件可能处于其中之一: 已提交(committed)、已修改(modified) 和 已暂存(staged)。

  1. 已修改表示修改了文件,但还没保存到数据库中。
  2. 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
  3. 已提交表示数据已经安全地保存在本地数据库中。
    这会让我们的 Git 项目拥有三个阶段:工作区、暂存区以及 Git 目录


    image.png

    工作区是对项目的某个版本独立提取出来的内容
    暂存区是一个文件,保存了下次将要提交的文件列表信息,一般在 Git 仓库目录中
    Git 仓库目录是 Git 用来保存项目的元数据和对象数据库的地方。 这是 Git 中最重要的部分,从其它计算机克隆仓库时,复制的就是这里的数据。
    基本的 Git 工作流程如下:
    1、在工作区中修改文件。
    2、将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。
    3、提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。

配置

查看所有的配置以及它们所在的文件
$ git config --list --show-origin
设置你的用户名和邮件地址

$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]

快速参考

-h 选项
git add -h

你可能感兴趣的:(git 学习1)