git的介绍与使用
1. git init ——初始化仓库
要使用Git进行版本管理,必须先初始化仓库。
$ mkdir git-tutorial
$ cd git-tutorial
$ git init
Initialized empty Git repository in/Users/hirocaster/github/github-book/git-tutorial/.git/
初始化成功后,执行了git init 命令的目录下就会生成.git目录。这个目录储存着管理当前目录内容所需的仓库数据。这个目录就是该仓库的工作树
2 .git status——查看仓库的状态
工作树和仓库在被操作的过程当中,状态会不断的发生改变。git status可以查看当前的状态
$git status # On branch
#
#InitIal commit
#
nothing to commit
结果显示我们在master分支下,而且显示尚没有可以提交的内容。接下来我们创立文件
$ touch README.md
$ git status
#On branch master
#
#initial commit
##Untracked files:# (use "git add <file>...' to include in what will be commited#
#README.md
nothing added to commit but untracked files present (use "git add" to track
可以看到在Untracked files 中显示了README.md文件。
2 .git add——向暂存区中添加文件
如果只是用git仓库的工作树创立了文件,那么该文件并不会被放入git仓库的版本管理工具中。因此当我们用git status命令查看README.md文件时,它会显示在Untracked文件中。
要想让文件成为git仓库的管理对象,就需要用git add命令将其加入暂存区(stage或者Index)
$ git status
# On branch master
#
# Initial commit
#
Changes to be committed:
(use "git rm --cached <file>..." to unstage
new file:README.md
3 .git commit——保存仓库的历史记录
git commit命令可以将放在暂存区中的文件实际保存到仓库的历史记录中。通过这些记录我们可以在工作树种复原这些文件。
Changes to be commited:
(use "git rm --cached <file>..."to unstage)
new file: REMADE.md
在编辑器中记述提交信息的格式如下:
第一行:用一行文字简述提交的更改内容
第二行:空行
第三行以后: 记述更改的原因和详细内容
-查看提交后的状态
执行完git commit命令后再来查看当前的状态
$ git status
#on branch master
nothing to commit ,working directory clean
当前工作树处于刚刚完成提交的状态,所以结果显示没有修改。
git log——查看提交日志
git log命令可以查看以往仓库中提交的日志。包货可以查看什么人在什么时候进行了提交和合并
$ git log
commit 9f129b2tqlrtfkewqflj
Author: hirocaster<hohtsuka@gmail.com>
Date: Sun May 5 16:06:49 2013 +0900
First commit
commit 栏旁边显示的“9f129”是指向这个提交的哈希值。Git的其它命令中,在指向时会用到这个hash值
…….显示文件的改动
如果想查看文件提交所带来的改动,可以加上参数-p,文件的前后差别会显示在提交信息之后。
$git log -p README.md
git diff——查看更改前后的差别
$ git diff
diff --git a/README.md b/README.md
index e69de29..cb5dc9f 1000644
--- a/REMADEME.md
+++ b/REMADEME.md
@@ - 0,0 +1 @@
由于我们尚未用git add命令向暂存区添加任何东西,所以程序之后显示工作树和最新提交状态之间的差别。
在上面程序中“+”号标出的是新添加行,被删除的则用“-”号标出,我们可以看到,这次只添加了一行。
……….查看工作树和最新提交的差别
如果执行git diff命令,由于工作树和暂存的状态并无差别,结果什么的都不会显示。想要查看与最新提交之间的差别,请执行以下命令。
git diff HEAD
这里的HEAD命令是指向当前分支中最新提交的一次指针。