`
bsr1983
  • 浏览: 1117377 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Git起步

    博客分类:
  • Git
阅读更多

1.1 关于版本控制

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

1.1.1 本地版本控制系统

文件补丁是一种特定格式的文本文件,记录着对应文本修订前后的内容变化。

1.1.2 集中化的版本控制系统

集中化版本控制系统(Centralized Version Control Systems,简称CVCS,诸如CVSSubversion以及Perforce等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

1.1.3 分布式版本控制系统

分布式版本控制系统(Distributed Version Control System,简称DVCS),诸如GitMercurialBazaar还有Darcs等,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来,

1.2 Git的历史

1.3 Git基础要点

1.3.1 直接快照,而非比较差异

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

Git并不保存这些前后变化的差异数据。实际上,Git更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提及更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为了提高新能,若文件没有变化,Git不会再次保存,而只对上次保存的快照作一连接。

Git更像是个小型的文件系统,但它同时还提供了许多以此为基础的超强工具,而不只是一个简单的VCS

1.3.2 近乎所有操作都可本地执行

Git中绝大多数操作都只需要访问本地文件和资源,不用连网。但如果用CVCS的话,差不多所有操作都需要连接网络。因为Git在本地磁盘上就保存着所有有关当前项目的历史更新,所以处理起来速度飞快。

1.3.3 时刻保持数据完整性

在保存到Git之前,所有数据都要进行内容的校验和(checksum)运算,并将此结果作为数据的唯一标识和索引。

Git使用SHA-1算法计算数据的校验和,通过对文件的内容或目录结构计算出一个SHA-1哈希值,作为指纹字符串。该字串由40个十六进制字符(0-9a-f)组成。

Git的工作完全依赖于这类指纹字串,所以你会经常看到这样的哈希值。实际上,所有保存在Git数据库中的东西都是用此哈希值来做索引的,而不是靠文件名。

1.3.4 多数操作仅添加数据

1.3.5 三种状态

对于任何一个文件,在Git内都只有三种状态:已提交(committed),已修改(modified)和已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。

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

每个项目都有一个git目录,它是Git用来保存元数据和对象数据库的地方。该目录非常重要,每次克隆镜像仓库的时候,实际拷贝的就是这个目录里面的数据。

从项目中取出摸个版本的所有文件和目录,用以开始后续工作的就叫做工作目录。这些文件实际上都是从git目录中的压缩对象数据库中提取出来的,接下来就可以在工作目录中对这些文件进行编辑。

所谓的暂存区域只不过是个简单的文件,一般都放在git目录中。有时候人们会把这个文件叫做索引文件,不过标准说法还是叫暂存区域。

1.4 安装Git

1.4.1 从源代码安装

Git的工作需要调用curlzlibopensslexpatlibiconv等库的代码,所以需要先安装这些依赖工具。在有yum的系统上或者有apt-get的系统上,可以用下面的命令安装:

$ yum install curl-devel expat gettext-devel \

      openssl-devel zlib-devel

$ apt-get install curl-devel expat gettext-devel \

      openssl-devel zlib-devel

之后,从下面的Git官方站点下载最新版本源代码:

http://git-scm.com/download

然后编译并安装:

$tar -zxf -git-1.6.0.5.tar.gz

$cd git-1.6.0.5

$make prefix=usr/local all

$sudo make profix=/usr/local install

1.4.2 Linux上安装

$yum install git-core

$apt-get install git-core

1.4.3 Mac上安装

(1)下载图形化安装工具,地址:http://code.google.com/p/git-osx-installer

(2)通过MacPorts(http://www.macports.org)安装。

命令:sudo port install git-core +svn +doc +bash_completion +gitweb

1.4.4 Windows上安装

安装文件下载地址:http://code.google.com/p/msysgit

1.5 初次运行Git前的配置

Git提供了一个叫做git config的工具,专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决定了Git在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:

(1)/etc/gitconfig文件:系统中对所有用户都普遍适用的配置。若适用git config时用--system选项,读写的就是这个文件

(2)~/.gitconfig文件:用户目录下的配置文件只适用于该用户。若适用git config时用--global选项,读写的就是这个文件。

(3)当前项目的git目录中的配置文件(也就是工作目录中的.git/config文件):这里的配置仅仅对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,所以.git/config里的配置会覆盖/etc/gitconfig中的同名变量。

Windows系统上,Git会找寻主目录下的.gitconfig文件。主目录即$HOME变量指定的目录,一般都是C:\Documents and Settings\$USER。此外,Git还会尝试找寻/etc/gitconfig文件,只不过看当初Git装在什么目录,就以此作为根目录来定位。

1.5.1 用户信息

第一个要配置的是你个人的用户名称和电子邮件地址。

$git config --global user.name "John Doe"

$git config --global user.email johndoe@example.com

如果用了--global选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他的名字或者电子邮件,只要去掉--global选项重新配置即可,新的设定保存在当前项目的.git/config文件里。

1.5.2 文本编辑器

$git config --global core.editor emacs

1.5.3 差异分析工具

还有一个比较常用的是,在解决合并冲突时使用哪种差异分析工具。比如要改用vimdiff的话:

$git config --global merge.tool vimdiff

Git可以理解kdiff3,tkdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge和opendiff等合并工具的输出信息。

1.5.4 查看配置信息

命令:git cinfig --list

1.6 获取帮助

获取帮助命令:

(1)$git help<verb>

(2)$git <verb> --help

(3)$man git-<verb>

<!--EndFragment-->
分享到:
评论

相关推荐

    Git详解教程

    Git详解之一 Git起步.doc Git详解之二 Git基础.doc Git详解之三 Git分支.doc Git详解之四 服务器上的Git.doc Git详解之五 分布式Git.doc Git详解之六 Git工具.doc Git详解之七 自定义Git.doc Git详解之八 Git与其他...

    GIT起步教程

    起步 本章介绍开始使用 Git 前的相关知识。我们会先了解一些版本控制工具的历史背景,然后试着让 Git 在你的系统上跑起来,直到最后配置好,可以正常开始开发工作。读完本章,你就会明白为什么 Git 会如此流行,为...

    Git详解_Git详解

    1. **Git起步**: Git是Linux之父Linus Torvalds为管理Linux内核开发而创建的分布式版本控制系统。它允许开发者追踪项目中的每一次更改,方便协作,并提供了回溯、分支管理和合并等功能。要开始使用Git,首先需要在...

    pro-git学习思维导图

    包括:git起步、git基础、部分git分支内容的思维导图,基本满足日常使用。

    GitNotesForProfessionals.pdf

    Git起步章节介绍了使用Git的基本操作,帮助用户创建第一个仓库,并对文件进行添加和提交。 - **创建第一个仓库**:了解如何通过`git init`命令初始化新的Git仓库。 - **添加和提交文件**:学习如何使用`git add`...

    Git中文学习手册 Git入门

    1 起步 1 1 关于版本控制 1 2 Git 简史 1 3 Git 基础 1 4 安装 Git 1 5 初次运行 Git 前的配置 1 6 获取帮助 1 7 小结 2 Git 基础 2 1 取得项目的 Git 仓库 2 2 记录每次更新到仓库 2 3 查看提交历史 2 ...

    progit.pdf--git学习教程

    教程的“起步”部分介绍了版本控制系统的重要性,Git的历史以及它是如何从一个简单的Linux内核版本控制系统发展成为今天这样广泛的使用。接着,“Git基础”部分详细讲解了如何开始使用Git,包括如何获取Git仓库、...

    Git教程by廖雪峰.pdf

    首先,本教程绝对面向初学者,没有接触过版本控制概念的读者也可以轻松入门,不必担心起步难度; 其次,本教程实用性超强,边学边练,一点也不觉得枯燥。而且,你所学的Git命令是“充分且必要”的,掌握了这些东西...

    git通俗易懂教程

    首先,本教程绝对面向初学者,没有接触过版本控制概念的读者也可以轻松入门,不必担心起步难度;其次,本教程实用性超强,边学边练,一点也不觉得枯燥。而且,你所学的Git命令是“充分且必要”的,掌握了这些东西,你就可以...

    git使用教程详细介绍

    一、起步 版本控制是记录文件内容变化的系统,以便将来查阅特定版本修订情况。它可以记录文件的每一次更新,并可以回溯到之前的状态。本地版本控制系统可以记录文件的历次更新差异,但它存在一些缺陷,如混淆所在的...

    progit-zh git官方文档-中文版

    #### 一、起步 **1.1 关于版本控制** - **本地版本控制系统**:早期版本控制系统通常在本地机器上存储版本信息,如`RCS`或`PVCS`。这类系统适用于单个开发者进行版本控制,但在多人协作时显得力不从心。 - **集中...

    git安装包下载指南

    Git是世界上最先进的分布式版本控制系统,尤其在软件开发领域被广泛使用。它可以帮助开发者追踪代码...希望这个指南能帮助你在Git的旅程中顺利起步。如果你在安装过程中遇到任何问题,记得查阅相关文档或社区寻求帮助。

    Git教程By廖雪峰

    首先,本教程绝对面向初学者,没有接触过版本控制概念的读者也可以轻松入门,不必担心起步难度;其次,本教程实用性超强,边学边练,一点也不觉得枯燥。而且,你所学的Git命令是“充分且必要”的,掌握了这些东西,...

    Git使用手册中文版

    #### 一、起步 - 关于版本控制 - **版本控制的概念**:版本控制系统是一种记录文件内容变化历史的技术,允许用户在未来查阅特定版本的修订情况。它不仅可以用于管理软件源代码,也可以适用于任何类型的文件。 - **...

    Git教程By廖雪峰.pdf

    首先,本教程绝对面向初学者,没有接触过版本控制概念的读者也可以轻松入门,不必担心起步难度; 其次,本教程实用性超强,边学边练,一点也不觉得枯燥。而且,你所学的Git命令是“充分且必要”的,掌握了这些东西...

    Git-2.17.0X64 官方正版

    对于初学者,建议参考提供的安装教程:"https://git-scm.com/book/zh/v1/起步-安装-Git"。这个链接指向的是《Pro Git》中文版的第一章,其中详细介绍了如何安装和配置Git,是学习Git的极好资源。 Git的基本操作包括...

    git英文应用指南

    GitHub是一个使用Git进行项目托管的网站,Scott Chacon在《Pro Git》第一版中提到了GitHub,那时GitHub才刚刚起步,用户数量相对较少。但是到了书的第二版时,GitHub已经成长为一个巨大的开源社区平台,拥有数百万...

    git学习资料

    本文将详细阐述Git的学习资料,包括起步,基础操作,分支管理,服务器上的Git,分布式Git的工作流程以及相关的工具使用。 首先,Git的基础概念需要掌握。版本控制系统分为三种类型:本地版本控制系统,集中化的版本...

    git实战命令

    #### 起步 1. **添加远程仓库**:使用`git remote add`命令将本地仓库与远程仓库关联,例如: ```bash git remote add origin git@code.aliyun.com:yourname/__yl.git git remote add my_files_remote git@code....

    pro.git-英文版

    在第一版《Pro Git》问世时,GitHub刚刚起步,只有几千用户和四位员工。而在第二版的前言写作时,GitHub已经宣布了第1000万个托管项目,拥有近500万注册开发人员账号和超过230名员工。GitHub的影响力已经显著地改变...

Global site tag (gtag.js) - Google Analytics