博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《Git学习指南》——2.2 第一个Git项目
阅读量:5864 次
发布时间:2019-06-19

本文共 2969 字,大约阅读时间需要 9 分钟。

本节书摘来自异步社区《Git学习指南》一书中的第2章,第2.2节,作者: 【德】René Preißel(普莱贝尔) , Bjørn Stachmann(斯拉赫曼)著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 第一个Git项目

在这里,我们建议你最好能为接下来的Git测试单独开辟一个项目。总之应先从一个简单的小项目开始。在我们这个小小的示例项目中,first-steps目录下只有两个文本文件,如图2.1所示。

screenshot

图2.1 我们的示例项目

在开始摆弄这个玩具项目之前,我们建议你最好先做一个备份!尽管在Git中,想要造成永久性的删除或破坏也不是件容易的事情,而且每当你要做某些“危险”动作的时候,Git通常也会发出相应的警告消息。但是,有备无患总是好的。

2.2.1 创建版本库

现在,我们首先需要创建一个版本库,用于存储该项目本身及其历史。为此,我们需要在该项目目录中使用init命令。对于一个带版本库的项目目录,我们通常称之为工作区。

> cd /projects/first-steps > git initInitialized empty Git repository in /projects/first-steps/.git/

init命令会在上述目录中创建一个名为.git的隐藏目录,并在其中创建一个版本库。但请注意,该目录在Windows资源管理器或Mac Finder中可能是不可见的。

screenshot

图2.2 本地版本库所在的目录

2.2.2 首次提交

接下来,我们需要将foo.txt和bar.txt这两个文件添加到版本库中去。在Git中,我们通常将项目的一个版本称之为一次提交,但这要分两个步骤来实现。第一步,我们要先用add命令来确定哪些文件应被包含在下次提交中。第二步,再用commit命令将修改传送到版本库中,并赋予该提交一个散列值以便标识这次新提交。在这里,我们的散列值为2f43cd0,但可能会有所不同,因为该值取决于文件内容。

> git add foo.txt bar.txt > git commit --message "Sample project imported." master (root-commit) 2f43cd0] Sample project imported.2 files changed, 2 insertions(+), 0 deletions(-) create mode 100644 bar.txt create mode 100644 foo.txt

2.2.3 检查状态

现在,我们来修改一下foo.txt文件的内容,先删除bar.txt文件,再添加一个名为bar.html的新文件。然后,status命令就会显示出该项目自上次提交以来所发生的所有修改。请注意,新文件bar.html在这里被标示成了未跟踪状态,这是因为我们还没有用add命令将其注册到版本库。

> git status # On branch master # Changed but not updated: # (use "git add/rm 
..." to update what will be committed) # (use "git checkout --
..." to discard changes in # working directory) # # deleted: bar.txt # modified: foo.txt # # Untracked files: # (use "git add
..." to include in what will be committed) # # bar.htmlno changes added to commit (use "git add" and/or "git commit -a")

如果我们还想看到更多细节性的内容,也可以通过diff命令来显示其每个被修改的行。当然。有很多人可能会觉得diff的输出是个非常难读的东西。幸运的是,在这一领域,我们有许多工具和开发环境可用,它们可以将这一切显示得更为清晰(见图2.3)。

screenshot

图2.3 图形工具(kdiff3)中的Diff报告

> git diff foo.txt diff --git a/foo.txt b/foo.txt index 1910281..090387f 100644 --- a/foo.txt +++ b/foo.txt @@ -1 +1 @@ -foo \ No newline at end of file +foo foo \ No newline at end of file

2.2.4 提交修改

接下来,所有的修改都必须要先被归档成一次新的提交。我们要对修改过的文件和新文件执行add命令,并对要删除的文件使用rm命令。

> git add foo.txt bar.html > git rm bar.txt rm 'bar.txt'

现在再次调用status命令,我们会看到所有的修改已经被纳入了下一次提交中。

> git status # On branch master # Changes to be committed: #   (use "git reset HEAD 
..." to unstage) # # new file: bar.html # deleted: bar.txt # modified: foo.txt #

然后用commit命令提交这些修改。

> git commit --message "Some changes." [master 7ac0f38] Some changes. 3 files changed, 2 insertions(+), 2 deletions(-)  create mode 100644 bar.html  delete mode 100644 bar.txt

2.2.5 显示历史

log命令可用来显示项目的历史,所有提交都会按时间顺序被降序排列出来。

> git logcommit 7ac0f38f575a60940ec93c98de11966d784e9e4f Author: Rene Preissel 
Date: Thu Dec 2 09:52:25 2010 +0100 Some changes. commit 2f43cd047baadc1b52a8367b7cad2cb63bca05b7 Author: Rene Preissel
Date: Thu Dec 2 09:44:24 2010 +0100 Sample project imported.

转载地址:http://eafnx.baihongyu.com/

你可能感兴趣的文章
延迟加载
查看>>
无法启动Microsoft Office Outlook 无法打开 Outlook窗口
查看>>
CentOS 6下Nginx反向代理配置
查看>>
windows下同一台服务器上装有两个ORACLE数据库实例,通过命令启停数据库
查看>>
python中for语句使用
查看>>
Linux C 编程中如何查看errno 错误代码。
查看>>
回收站中被标记删除的表不可以DML和DDL操作
查看>>
zabbix的linux客户端的配置
查看>>
教你使用永中Office版式信息
查看>>
动态规划本质理解:01背包问题
查看>>
2019年第二周作业
查看>>
文件夹和文件按日期命名备份到ftp
查看>>
saltstack--pillar
查看>>
CentOS yum报错的一般解决方法
查看>>
JS配置文件动态加载CSS,js和定义请求路径
查看>>
Linux curl使用简单介绍
查看>>
调试shell 程序
查看>>
C++智能指针详解(真的很经典 )
查看>>
Apache日志切割
查看>>
九大内置对象
查看>>