您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
Git 本地仓库(Repository)详解(一)
 
作者 陈明乾 的BLOG,火龙果软件    发布于 2014-08-05
  7060  次浏览      15
 

注,测试机 CentOS 5.5 x86_64,Git 服务器版本:git version 1.8.2.1,客户端版本:git version 1.9.2.msysgit.0。所有软件请到这里下载:http://msysgit.github.io/。

一、前言

本来呢,其实呢。我以为Git也就几个命令,没什么难的。于是就到网上找了些文章看看,发现这些文章难得不知道该说什么好。不是简单的写几个命令,就是直接复制粘贴手册中的内容,没有一点连续感,不知道从何学起。总之呢,我想写一个什么都不会的朋友能看懂的、初学朋友能看懂的、运维能看懂的、开发也能看懂的,看完就能干活的教程。

二、概述

这个教程呢,有几个部分先和大家说一下:

Git 本地仓库详解

Git 远程仓库详解

Git 分支管理详解

Git 标签管理详解

GitHub 使用详解

Git 全局配置详解

Git与GitHub总结

注,本教程呢,只能让你会使用Git干活,至于你呢想深入了解Git,或者想成为Git领域的专家哟,我想说这只是个起步。还有我想说Git只是个工具嘛,目的只是为了提高我们的工作效率,我们没有必要去,也不需要学浪费时间在研究工具上,只要我们会用就好,嘿嘿!也许有博友不同意啊,只是个人见解啊,勿喷啊!

三、在Windows上安装Git

注,大家请到这里下载:http://msysgit.github.io/。具体的安装过程我就不演示了,直接双击安装即可。安装完成后桌面上会生成一个Git bash图标,双击打开会弹出一个类似命令行窗口的东西,大家请看下图:

好了,到这里我们的Git就安装完成了,嘿嘿!下面我们来进行基本配置:

$ git config --global user.name "Your Name"
$ git config --global user.email “email@example.com”

注,我这里根据我的情况设置如下(如上图):

$ git config --global user.name "chenmingqian"
$ git config --global user.email “mingqian_chen@163.com”

我们在上一篇文章说过Git是分布式控制系统,所以,每个客户端都必须设置:你的名字和邮箱。这样才容易区分是哪个用户提交的Git版本,嘿嘿!大家可以看到git config 后面接的是--global参数,这表示你的机器上所有的Git仓库都会使用这个配置,但你也可以对不同的仓库指定不同的用户名和邮箱。这个我们会在后面的文章中讲解,这里不作说明,嘿嘿!有兴趣的博友可以先提前google一下。

四、创建本地仓库

1.版本库又称仓库

版本库或者是仓库,英文名Repository,其实啊说白了就是一个目录而且,这个目录中的所以文件都被git管理而且,不管你做什么操作都会被记录,包括:增加、删除、修改文件等,都会被记录下来,以便后来跟踪与修改相关记录,甚至被还原。好了,下面我们就在我们客户端(我这里演示的是Windows客户端,其它客户端操作一样)中创建一个版本库:

大家可以看到我们在/c/Users/root/下创建一个空目录pro即可project简写。还有一点需要说明的在Windows系统中目录名称不要使用中文,不然会出现神马问题,我不负责。嘿嘿^_^……

2.目录变成仓库

执行git init命令,即可Initialized empty Git repository in c:/Users/root/pro/.git/,初始化一个空目录,路径为c:/Users/root/pro/.git/。大家可以看到pro目录中生成了一个隐藏目录 .git目录,进入目录中大家可以看到里面有很多文件,没事不要修改或者改动里机的文件,这里面的文件就是控制和管理版本库的,嘿嘿。至于里文件的具体作用我们会在后面的文章中讲解,想提前了解的朋友可以先google一下。

3.向本地仓库中增加文件

下面我们向版本库中增加文件,需要注意的是,在版本库中只能跟踪和管理文本文件,比txt文件、js文件、php文件、java文件等,所有的程序代码都可以的。但是像视频、图片等这些二进制文件,虽然能由git管理,但是只能记录大小,无法跟踪具体修改了什么,嘿嘿。大家懂了吧。好了,下面我们来增加一个readme.txt文件,其内容如下:

This is git test.
Git is a version of the best controller.
……

注意,新建的readme.txt文件,一定要在pro目录,不然git无法管理这里文件哦,嘿嘿!下面我们把个文件放到版本库中。

1).git status 命令

我们先用git status命令查看一下,如上图。大家可以看到git记录我们新增加一个文件readme.txt,并且提示这个文件还没有被提交。下面我们用git add命令提交一下。

2).git add 命令

git add 命令是告诉git,我们要把什么文件提交到仓库中去,大家可以看我们执行git add readme.txt命令后,没有任何提示。那就说明我们提交完成了。下面我们通过git commit命令,将readme.txt文件提交到版本库中。

3).git commit 命令

$ git commit -m "add readme.txt"
[master (root-commit) e5d662b] add readme.
1 file changed, 3 insertions(+)
create mode 100644 readme.txt

大家可以看到我们用git commit命令提交readme.txt文件,给出的提示是 1 file changed, 3 insertions(+),一个文件改变,插入了三行内容。与我们上面增加三行内容一致。嘿嘿!下面我们简单的说明一下git commit命令,其中的参数-m后面输入的是本次提交的版本说明,可以输入任意内容,但需要说明的是,最好写有意义的说明,便于以后查看。

4).git status 命令

最后我们再用git status命令查看一下版本库的状态,提示没有任何内容需要提交说明我们向版本库增加文件成功了,嘿嘿。

4.总结

1).初始化一个Git仓库,使用git init命令

2).添加文件到本地Git仓中,分为两步:

使用git add命令,注意,可以多次使用,添加多个文件

使用git commit命令,完成添加。

为什么Git添加文件需要两步呢?一步add,一步commit。嘿嘿,因为commit命令可以一次提交多个文件,所以你可以多次使用add命令呢。下面是个案例:(我们也经常这么用)

$ git add file1.php
$ git add file2.php
$ git add file3.php
$ git commit –m “add file1.php file2.php file3.php”

好了,到这里我们创建本地git仓库和向仓库中增加文件的内容就讲解完成了,下面我们来详细讲解一下Git本地仓库的管理,内容有点多请大家慢慢看,嘿嘿!

五、本地仓库管理详解

1.查看工作区的状态(git status)

在上面的文章中我们成功的增加了一个readme.txt文件,并用git status命令查看了状态,在这节中我们就详细的说一下git status命令。我们修改一下readme.txt中的内容如下:

This is git test. 
Git is a version of the best conntroller.

我们删除了最后一行,现在我们再用git status命令查看一下状态:

从上图中我们可以看到,我们用git status命令查看一下,我们得知readme.txt文件被修改过了,但是还没有提交这个修改。但是有博友会问了,git提示我们这个readme.txt这个文件被修改了,但我们想看看具体修改了什么内容怎么办呢?这个时候我们需要git diff命令出场了,如下图:

大家可以从上面图片中可以看到,我们删除了最后一行的……省略号。嘿嘿,用红颜色标出来的。好了知道修改了什么,下面我们就提交修改吧,提交修改和提交新文件一致,也是两步,先add,再commit。如下图:

大家可以看到我们执行git add命令,同样没人输出。但是,我们可以用git status命令查看一下。下面我们用git commit命令提交到本地版本库,如下图:

同样的我们使用git status命令查看一下状得知我们修改的readme.txt文件已提交。好了,到这里我们的git status命令就讲解完成了,同时我们也讲解一个git diff命令,可以查看我们修改了哪些内容。下面我们来讲解一下版本回滚。

2.版本回滚

在上面一个章节中我们演示修改文件并提交文件,再用git status命令查看状态,下我们再修几个版本并提交:

好了,就这样我们不断的修改并提交到本地的版本库中。一会你测试的时候发现前修改的版本有问题想回滚到前面的版本,或者你误删除了一些文件,想回到上一个commit中去,然后继续工作。我们应该怎么办呢?在Git版本控制中,我们所有的操作都是有历史记录的,我们用git log命令查看一下(如下图):

大家可以看到,用git log命令可以查看最近几次提交的版本。如果你发现内容太多,可以用这个命令查看(如下图):

上面你看到的一大串数字,其实是commit id(即,版本号),和svn不一样,Git的commit id不是1,2,3……这样的递数字,而是一相SHA1计算出来的哈希数,用16进制表示。有博友会问了,为什么Git的commit id不是1,2,3……这样的递增数字,而是用SHA1算出来的哈希数来表示呢?大家应该知道Git是分布式管理系统,我们会有多个人同时开发,如果大家都用1,2,3……这样的递增数字,作为版本号,那不就冲突了嘛,嘿嘿。好了,下面我们来说版本回滚,准备把readme.txt回滚到“add readme.txt“的那个版本,我们应该怎么做?

Git 本地仓库(Repository)详解(二)

   
7060 次浏览       15
相关文章

每日构建解决方案
如何制定有效的配置管理流程
配置管理主要活动及实现方法
构建管理入门
相关文档

配置管理流程
配置管理白皮书
CM09_C配置管理标准
使用SVN进行版本控制
相关课程

配置管理实践
配置管理方法、工具与应用
多层次集成配置管理
产品发布管理
最新课程计划
信息架构建模(基于UML+EA)3-21[北京]
软件架构设计师 3-21[北京]
图数据库与知识图谱 3-25[北京]
业务架构设计 4-11[北京]
SysML和EA系统设计与建模 4-22[北京]
DoDAF规范、模型与实例 5-23[北京]

软件配置管理的问题、目的
软件配置管理规范
CQWeb 7.1性能测试与调优指南
为什么需要使用ClearCase
ClearCase与RTC的集成
利用ClearQuest 进行测试管理
更多...   


产品发布管理
配置管理方法、实践、工具
多层次集成配置管理
使用CC与CQ进行项目实践
CVS与配置管理
Subversion管理员


配置管理实践(从组织级到项目级)
通号院 配置管理规范与应用
配置管理日构建及持续集成
丹佛斯 ClearCase与配置管理
中国移动 软件配置管理
中国银行 软件配置管理
天津华翼蓝天科技 配置管理与Pvcs