水滴石穿 / git

git版本控制之道

2014-08-09 posted in [git]

#第一章:Git的版本控制之道

版本控制系统(version control system, VCS) 可以帮助我们记录跟踪项目中的各文件内容的修改变化。它最简单的实现形式是:复制文件以备份,在备份文件的文件名中添加上时间和日期。

分布式版本控制系统(Distributed version control system, DVCS) 也是这样,它的主要目标仍然是帮助记录和跟踪项目中所做的修改。而它与传统的版本控制系统的区别在于,开发人员相互同步修改内容的方式不同。

本章内容如下:

这些论题都是围绕着版本库展开的。所以先从学习版本库开始。

##1.1 版本库

版本库(Repository)是版本控制系统用来存储所有历史数据的地方。大多数版本控制系统在版本库中存储各个文件的当前状态、历史修改记录、谁做的修改、以及修改的原因。 版本控制系统就好比是银行保险柜,而它保存的历史信息就好比对账单。每存入一笔存款时,或者用版本控制系统的行话来说,每当进行一次提交(commit)的时候,版本控制系统就会在“对账单”上添加一个条目,并且把提交的内容保存在版本库里。

##1.2 版本库中存储什么

##1.3 工作目录树

##1.4 代码修改与文件同步

##1.5 跟踪项目、目录和文件

##1.6 使用标签跟踪里程碑

##1.7 使用分支来跟踪并行演进

##1.8 合并(Merging)

##1.9 锁机制

#第二章:创建第一个项目

本章内容如下:

##2.1 创建版本库

在git中创建版本库是很简单的。

prompt> mkdir mysite
prompt> cd mysite/
prompt> git init 
Initialized empty Git repository in /home/mike/gittest/mysite/.git/

命令git init会创建一个.git目录。这个目录存放版本库的全部元数据。mysite目录作为工作目录树,存放从版本库检出的代码。

##2.2 代码修改

前面的操作已经创建了一个空版本库,现在该往里面添加文件了。现在我们创建一个名为index.html的文件,并添加标题文本为“Hello world”.详细内容如下:

prompt> cat > index.html
<html>
<body>
    <h1>Hello World</h1>
</body>
</html>

创建了一个简单的HTML文件后,就可以开始跟踪版本了。我们会向这个文件不断添加内容。要想让git跟踪这个文件,须先让它知道这个文件要分两步走:首先使用git add 命令把该文件添加到版本哭的索引(index): 然后使用git commit命令提交。

prompt> git add index.html
prompt> git commit -m "add in hello world HTML"
[master (root-commit) 1f02c4f] add in hello world HTML
 1 file changed, 5 insertions(+)
 create mode 100644 index.html

文件或者文件列表可以作为git add命令的参数.git commit命令创建一个提交记录。提交记录是存储在版本的历史记录,每提交一次创建一个记录,并标记代码的演进。

第一个项目的版本库已经准备好,并且已经开始跟踪文件。下面开始学习怎样处理文件修改。这个HTML文件里面还没有<head>和元素。下面为该文件添加这些元素:

<html>
<head>
	<title>Hello World in Git</title>
</head>
<body>
    <h1>Hello World</h1>
</body>
</html>

修改完毕,git可以检测到文件被修改。命令git status会现实工作目录的状态,即当前的试图状态。

prompt> git status 
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

  modified:   index.html

no changes added to commit (use "git add" and/or "git commit -a")

##2.3理解并使用分支

分支是维护项目中并行历史记录的方法。创建并行历史记录当然非常好,但在真实的项目中该如何使用呢?实际应用中有两种分支比较有用:用来支持项目的不同发布版本的分支,以及用来支持一个特定功能的开发的分支,接下来我们将介绍第一种分支。

mysite项目代码现在几乎可以发布了,但是还要进行测试等工作。直到确认它达到了预期的功能和质量。而与此同时,借助分支,可以开始下一个版本的心功能的开发了。

分支可以为要发布的代码保留一份拷贝,所以无须停止正在开发的工作。创建分支的命令是git branch ,该命令需要两个参数:新分支名称和父分支名称。新创建的分支基于已经存在的父分支。

prompt> git branch RB_1.0 master

该命令从主分支(master branch)上创建一个叫RB_1.0的分支。主分支是git的默认分支

现在来做一些新的改动。这些改动不影响准备发布的代码。下面给“bio”页面添加一个链接。在<body>之前增加如下代码:

<ul>
	<li><a href="bio.html">Biography</a></li>
</ul>
如下命令提交这些修改:
prompt> git commit -a 

这是一块引用的内容

This is sure

Git on the server - Setting Up the Server!

2014-01-02 posted in [git]