标签:重点 总结 it基础 ... 不同的 指定 执行 http 朋友
鉴于目前使用git的公司越来越多,而笔者之前一直使用SVN,对于使用svn进行项目管理比较熟悉,但是对于git,网络上搜寻的各种资源虽然很多,但是杂乱而且很少有对于完全不懂的小白进行讲解的部分。
因此笔者通过朋友搜集了部分git相关的电子书籍,以及结合一些网络博客,在此文进行一个汇总,同时也算是对于自身学习的一种总结。
1、版本控制工具。
版本控制用于记录若干文件的内容变化,以便于将来查询某一特定时间点文件的当前内容。例如原本稳定运行的项目需要新增某种新的功能,新功能完成上线后在实际情况中并不如何实用并且带来不可预知的问题,因此需要对该功能进行删除,此时,可以使用版本控制工具,对项目进行版本还原,还原到之前未添加新功能时候的项目内容。在git中,该文件可以是任意类型。
2、集中化的版本控制系统。
在版本控制工具最开始的时候,考虑的问题是如何解决多人同时开发一个项目而进行的协同工作的问题。该类型的版本控制工具也称为集中化的版本控制系统(CVCS)。
CVCS采用的做法是提供一个集中管理的服务器,保存所有文件的修订版本,而参与开发的开发人员通过客户端连接这台服务器,取出最新的文件或者提交更新。
3、分布式版本控制系统。
与集中化的版本控制系统所不同的是, 分布式版本控制系统的每一个客户端都保存了当前仓库的所有版本内容(包括历史版本记录),而不仅仅只是一个当前版本的内容。这样的好处在于避免当唯一的服务器宕机时出现的之前版本记录丢失的问题。这样每一个客户端都相当于一个服务器,都可以对仓库进行恢复,更加保证了项目的安全性。
4、git是一种分布式版本控制系统。
从诞生初期,它便被设定了如下目标:
5、git与其他版本控制系统的对比。
大多数的其他版本控制系统侧重点如在于如左图所提交的某个或多个文件内容的具体差异,而git侧重点在于右图中对文件整体的变化。其他版本控制系统只会记录更新文件的具体修改细节,而git则是对于整个文件与仓库中保存的原文件进行对比,如果不同,则保存新的文件,如果相同,则引入它的索引,作为一个新的版本记录下来。
6、git近乎所有操作均可本地执行。
与笔者所使用的SVN每次进行更新或提交都需要保证网络能连通服务端所不同的是,由于git已经将所有的版本信息保存在了本地,因此不论是提交、更新或者还原操作,均可以在没有网络的情况下进行,等到能与服务端连接的时候,再对所更新的内容提交到服务端保存。
7、时刻保持数据完整性。
在保存到git之前,所有的数据都要进行内容的校验和计算,并将此结果作为数据的唯一标识和索引。
git使用的是SHA-1算法计算数据的校验和,通过对文件的内容或目录的结构计算出一个SHA-1哈希值,作为指纹字符串。该字符串由四十位十六进制数组成。保存在git中的所有文件实际上都是以该哈希值做索引,而不是文件名。
8、git的三种状态。
在git内容有且仅有三种状态:
由此,我们可以看到git管理项目,文件流转的三个工作区域:git本地数据目录、工作目录、暂存目录
每一个项目都有一个git目录(git directory),它是git用来保存元数据和对象数据库的地方,每次拷贝镜像仓库时,实际拷贝的就是这个目录里的数据。
从项目中取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录(working directory)。
暂存区域(staging area)只不过是个简单文件,通常放在git目录中。有时候还被称为索引文件。
9、基本git的工作流程。
1、安装git。
linux:
fedora:$ yum instal; git-core
Ubuntu:$ apt-get instal; git-core
windows:
从地址http://code.google.com/p/msysgit下载msysGit项目所提供的安装包(.exe)。
2、git的配置工具。
git提供了一个叫做git config的工具(实际是git-config的命令,只不过可以通过git加一个名字来呼叫此命令。),专用用来配置或读取相应的工作环境变量,这些环境变量存放在以下三个目录:
每一级的配置都会取代更上一级的相同配置, 例如当前项目的.git/config文件中进行过配置,则在~/gitconfig文件中所配置的则会无效。
3、配置用户名称和电子邮箱。
$ git config --global user.name "yxf"
$ git config --global user.email 5277xxxx@qq.com
配置成功后,每一次提交项目去git中,均会引用这两条信息,以标识是谁提交的更新。
4、配置文本编辑器。
默认情况下,git会使用操作系统指定的默认编辑器,一般是vi或vim。但可以通过指令来进行重新设定:
使用Emacs编辑器:$ git config --global core.editor emacs。
5、配置差异分析工具。
解决合并冲突时,改用常使用的vimdiff作差异分析工具:$ git config --global merge.tool vimdiff
6、查看配置信息。
$ git config --list
有时候会查询出相同的变量名,这种情况是由于它们来自不同的配置文件,但实际有效(被git所采用)的是最后一个。
也可以直接查询某个环境变量名,只需把特定的变量名加在参数后面即可:$ git config user.name
7、获取帮助。
有三种方式可以使用帮助:
比如要学习config命令如何使用:$ git help config
1、取得git仓库
有两种取得git仓库的办法:
(1)创建新的git仓库步骤:
找到项目所在目录,执行$ git init,将在当前目录下生成一个新的.git目录,所有git所需要的数据和资源都存放在这个目录中。
P13未完待续......
标签:重点 总结 it基础 ... 不同的 指定 执行 http 朋友
原文地址:https://www.cnblogs.com/yxth/p/9057043.html