Git 基本操作
git init
创建版本库
$ git init
git add
将文件添加到版本库暂存区
$ git add welcom.txt
git commit
提交到本地版本库
$ git commit -m "注释"
git clone
克隆远程版本库
$ git clone git://192.167.100.232/AMSS.git
git rm
删除文件
要从Git版本库中删除某个文件,就必须要先从暂存区删除,然后提交。可以用 git rm 命令完成此工作,并连带从工作区中删除指定的文件。
$ git rm welcom.txt
强制删除
如果删除之前修改过并且已经加到暂存区的话,则必须要用强制删除选项-f。
$ git rm -f welcom.txt
删除Git版本库中文件,保留当前工作区文件
如果只想把文件从Git版本库中删除,但想保留在当前工作区,可以用–cached选项。
$ git rm --cached welcom.txt
删除文件夹里所有文件
$ git rm -r dir/
快速标记删除
将本地有改动(包括修改和删除)的文件标记到暂存区
$ git add -u .
git mv
移动文件
$ git mv file_from file_to
git mv 命令相当于运行了下面三条命令:
$ mv file_from file_to $ git rm file_from $ git add file_to
git diff
git status
Git status 命令用来确定哪些文件当前处于什么状态。
Nothing to commit: 工作目录是干净的,即当前没有任何被加到暂存区,也没有任何文件在上次提交后更改过。
Changes not staged for commit: 版本库中的文件在工作区中被修改了,还没有加到暂存区中(即还没有git add),也没有提交到版本库中。
Changes to be committed: 版本库中的文件在工作区中被修改了,并已加到暂存区中(即也git add),但还没有提交到版本库中。
Untracked files: 新加文件,版本库中并没有此文件。
Git status -s
第一列为暂存区状态
第二列为工作区状态
$ git status -s
MM aaa
位于第一列的字符 M 的含义是:版本库中的文件与处于中间状态——提交任务(提交暂存区,stage)中的文件相比有改动。
位于第二列的字符 M 的含义是:工作区当前的文件与处于中间状态——提交任务(提交暂存区,stage)中的文件相比有改动。
git log
查看历史提交。
默认不用任何参数的话,git log 会按提交时间列出所有的更新,最近的更新排在最上面。每次更新都有一个 SHA1 哈希值、作者的名字和电子邮件地址、提交时间及提交说明。
参数:
-p 选项展开显示每次提交的内容差异。 -<n> 则仅显示最近的 <n> 次提交。 --stat 仅显示简要的增改行数统计。 --pretty 可以指定使用完全不同于默认格式的方式展示历史提交。比如用 oneline 将每到个提交放在一行显示。另外还有 shor, full 和 fuller 可以用,展示的信息或多或少有些不同,请自己动手实践一下看看效果如何。
例:查看某段时刻的log
git log --until=2013-11-23 #表示查看2013年11月23日以前的log git log --since="2 days ago" --until="10 hour ago" #就表示你希望查找两天前到十小时前的log git log --until=1.minute.ago # 一分钟之前的所有 log git log --since=1.day.ago #一天之内的log git log --since=1.hour.ago #一个小时之内的 log git log --since=1.month.ago --until=2.weeks.ago #一个月之前到半个月之前的log git log --since=2013.08.01 --until=2013-09-07 #某个时间段的 log