Git管理项目实例说明-记录和跟踪项目

Posted 散尽浮华

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git管理项目实例说明-记录和跟踪项目相关的知识,希望对你有一定的参考价值。

 

假设一个html项目,使用Git来记录和跟踪这个项目,包括以下内容:
1)创建版本库。
2)添加与修改文件。
3)创建新分支。
4)打标签并整理版本库。
5)克隆版本库。

1.创建版本库 Creating a Repository
在Git中,版本库(.git目录)是与工作目录树并排放在同一个目录中的。
本例中,要创建一个HTML页面,给这个项目取名为mysite。
首先创建一个同名目录“mysite”,并进入到这个目录,然后输入命令git init。
[[email protected] ~]# mkdir mysite
[[email protected] ~]# cd mysite
[[email protected] mysite]# git init
Initialized empty Git repository in /root/mysite/.git/
创建完成。

2.代码修改
往空版本库里面添加文件:
创建一个名为index.html的文件,并添加文本:
[[email protected] mysite]# vim index.html

<html>
<body>
<h1>Hello World</h1>
<p>My first paragraph.</p>
</body>
</html>

创建了一个简单的HTML文件后(把它放在mysite路径下),就可以开始跟踪版本了。

要想让Git跟踪这个文件,须先让它知道这个文件,要分两步走:
1)首先使用git add命令把该文件添加到版本库的索引(index);
2)然后使用git commit命令提交。

文件或文件列表可以作为git add命令的参数。
[[email protected] mysite]# git add index.html

git commit命令创建一个提交记录。
提交记录是存储在版本中的历史记录,每提交一次创建一个记录,并标记出代码的演进。
Git把提交者的姓名和邮件地址,以及提交留言,都添加到提交记录中。
参数-m,告诉Git本次提交的留言为"add in hello world HTML"。
commit提交前要进行global全局设置,设置邮箱和用户名地址,不然提交会失败
[[email protected] mysite]# git config --global user.email "[email protected]"
[[email protected] mysite]# git config --global user.name "wangshibo"
[[email protected] mysite]# git commit -m "add in hello world HTML"

运行命令git log可以看到这个提交相关的信息:
输出的第一行显示提交名称,是Git自动产生的SHA-1码。Git通过它来跟踪提交,使用该哈希码可以保证每个提交的名称都是独一无二的。
[[email protected] mysite]# git log
commit 6881e1772267debce7bc29ee90cc5acf448ab24a
Author: wangshibo <[email protected]>
Date: Tue Dec 20 17:16:20 2016 +0800

add in hello world HTML

3.项目后续开发中,修改HTML文件如下:
[[email protected] mysite]# vim index.html

<html>
<head>
<title>Hello World in Git</title>
</head>
<body>
<h1>Hello World</h1>
<p>My first paragraph.</p>
</body>
</html>

修改完毕,Git可以检测到文件被修改。
命令git status会显示工作目录树的状态,即当前的视图状态。
[[email protected] mysite]# 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")

上面的结果表明Git监测到了修改,但还不知道如何处理它们。
如果要提交,需要暂存(stage)修改,以准备把修改提交到版本库

Git有三个地方可以存放代码:
1)第一个地方是工作目录树,编辑文件时可以直接在这里操作;
2)第二个是索引(index),也就是暂存区(staging area)。暂存区是工作目录树和版本库之间的缓冲区。
3)第三个,也就是最终的一个,是版本库。

命令git add,可以暂存对文件刚做的修改。它跟前面添加一个新文件时使用的是同一个命令,只不过,这次它告诉Git要跟踪的是一个新的修改而非新的文件。
[[email protected] mysite]# git add index.html
[[email protected] mysite]# git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.html
#

暂存修改过的index.html之后,执行命令git status可以看到,信息变为了Changes to be commited,index.html这行由红色变为了绿色。
使用命令git commit时,不要忘记使用带-m的参数,并在参数后面加上提交留言,以解释修改的原因,如下:
git log可以快速浏览提交留言:
[[email protected] mysite]# git log
commit 6881e1772267debce7bc29ee90cc5acf448ab24a
Author: wangshibo <[email protected]>
Date: Tue Dec 20 17:16:20 2016 +0800

add in hello world HTML
[[email protected] mysite]# git log -1
commit 6881e1772267debce7bc29ee90cc5acf448ab24a
Author: wangshibo <[email protected]>
Date: Tue Dec 20 17:16:20 2016 +0800

add in hello world HTML
命令中加入参数:-1可以限制命令输出的提交条目的个数。

4.分支理解和使用
比如mysite项目的代码现在几乎可以发布了,但是还需要进行测试等工作,直到确认它达到了预期的功能和质量,而与此同时,借助分支,可以开始下一个版本的新功能的开发了。
创建分支的命令是git branch,该命令需要两个参数:新分支名称和父分支名称。
新创建的分支基于已经存在的父分支。
[[email protected] mysite]# git branch RB_1.0 master
该命令从主分支(master branch)上创建一个叫RB_1.0的分支。
主分支master是Git的默认分支。分支名称中的RB代表发布分支(release branch)。该前缀可以让人快速分辨出哪些分支是发布分支。

现在来做一些新的改动。这些改动不影响准备发布的代码。
在</body>之前增加如下代码:
[[email protected] mysite]# vim index.html

<html>
<head>
<title>Hello World in Git</title>
</head>
<body>
<h1>Hello World</h1>
<p>My first paragraph.</p>
<ul>
<li><a href="bio.html">Biography</a></li>
</ul>
</body>
</html>

用如下命令提交这些修改:
[[email protected] mysite]# git commit -a
Aborting commit due to empty commit message.
参数-a告诉Git提交全部修改过的文件。
上面提交后,会届时弹出了一个文本文件,输入的信息是提交留言。将弹出的文本文件正常退出即可。

现在主分支上有最新的修改,而发布分支上还是原来的代码。
请切换到发布分支,做发布前的最后修改。切换分支的命令是git checkout。
[[email protected] mysite]# git checkout RB_1.0
M index.html
Switched to branch ‘RB_1.0‘

转换分支后,所使用的打开文件的编辑器会提醒文件已经被修改,重新载入文件,会发现刚才在主分支上做过的修改消失了。
可以用git status命令来查看自己在哪一个分支上:
[[email protected] mysite]# git status
# On branch RB_1.0
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: index.html
#
# 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
#

做发布前的最后修改:在<head>标记块中添加一些描述性的元标签:
[[email protected] mysite]# vim index.html

<html>
<head>
<title>Hello World in Git</title>
<meta name="description" content="hello world in Git"/>
</head>
<body>
<h1>Hello World</h1>
<p>My first paragraph.</p>
<ul>
<li><a href="bio.html">Biography</a></li>
</ul>
</body>
</html>

保存并修改该提交:
[[email protected] mysite]# git commit -a
Aborting commit due to empty commit message.

 

以上是关于Git管理项目实例说明-记录和跟踪项目的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Redmine 问题跟踪器中显示 Git 提交历史

git commit -m 与 git commit -am的区别

跟踪活动中的片段[关闭]

Git——版本控制器概述

分布式项目管理/错误跟踪

PHP项目开发经验整理