Git

Git起步与基础

Posted by 阿呆 on 2019-01-09

起步

关于版本控制

什么是版本控制?
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

本地版本控制系统

再本地记录每次版本的差异,比如一种叫做rcs,它的工作原理基本上就是保存并管理文件补丁(patch)。文件补丁是一种特定格式的文本文件,记录着对应文件修订前后的内容变化。
rcs可以通过不断打补丁,计算出各个版本的文件内容

集中化的的版本控制系统

那么,接下来有一个问题,如何让不同系统上的开发者协同工作?
于是集中化的版本控制系统(Centralized Version Control Systems,简称 CVCS)应运而生。这类系统,都有一个单一的集中管理服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法

CVCS

缺点:中央服务器的单点故障,短期内无法提交更新,也就无法协同工作。最坏的情况,如果中央服务器没有做备份,或者备份不够及时,就会有丢失数据甚至整个项目的所有历史更改记录。

分布式版本控制系统 DVCS

Distribute Version Control System. 最典型的是 Git,客户端不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来(更改记录一并镜像下来了),这样一来,任何一处协同工作地服务器发生故障,时候都可以用任何一个镜像出来地本地仓库恢复

DVCS

更进一步:许多这类系统都可以指定和若干不同地远端代码仓库进行交互,借此,你就可以再同一个项目中,分别和不同工作组地人互相协作

Git基础

简单地说,Git究竟是一个怎样的系统呢?请注意,接下来地内容非常重要,若是你理解了Git的思想和基本工作原理,用起来就会很简单,游刃有余。

直接记录快照,而非差异比较

Git和其它版本控制系统的主要差别在于,Git只关心文件数据的整体是否发生变化,而大多数其它系统则只关心文件内容的具体差异

下面两张图,比较一下二者的区别

陈旧的版本控制系统

Git(它完全颠覆了传统版本控制系统的套路)

近乎所有的操作都是本地执行

如果是CVCS的话,差不多所有操作都需要链接网络,而Git不需要,因为Git在本地磁盘上就保存着所有当前项目的历史更新,所以处理速度飞快

时刻保持数据完整性

多数操作仅添加数据

文件的三种状态 | very important

对于任何一个文件,在Git内都只有三种状态:

已提交(committed)

已修改(modified)

已暂存(staged)

由此我们看到 Git 管理项目时,文件流转的三个工作区域:Git的工作目录,暂存区域,以及本地仓库

基本的Git工作流程如下:
1.在工作目录中修改某些文件
2.对修改后的文件进行快照,然后保存在暂存区域
3.提交更新,将保存在暂存区域的文件快照永久转储到Git目录中

初次运行 Git 前的而配置

配置工作只需要一次,以后升级还会沿用,当然,你可以随时使用相同的命令修改已有的配置,git提供了一个叫做 git config的工具,专门来配置或读取相应的工作环境变量,而正是由这些环境变量,决定了 git 在各个环节的具体工作方式和行为

git config --system 系统中的所有用户都普遍适用
git config --global 适用该用户
git config

查看配置信息

1
git config --list

获取帮助

1
git help <verb>

git使用

1.取得项目的Git仓库

git init

git clone [url]