开发者社区> jeremy_wong> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Git基础02

简介:
+关注继续查看

三种状态

仅修改但没有添加到暂存区

1
2
3
4
5
6
7
8
9
$ git status
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add <file>..." 更新要提交的内容)
(使用 "git checkout -- <file>..." 丢弃工作区的改动)

修改: 01.txt

修改尚未加入提交(使用 "git add" 和/或 "git commit -a"

已提交到暂存区,但没有提交

1
2
3
4
5
6
$ git status
位于分支 master
要提交的变更:
(使用 "git reset HEAD <file>..." 撤出暂存区)

修改: 01.txt

已提交到当前分支,工作区干净

1
2
3
$ git status
位于分支 master
无文件要提交,干净的工作区

提交历史

1
2
3
4
5
6
7
$ git log # 显示所以提交历史
commit 9cf50d94d4134f36199c19a4798fe84c81832515
Author: learnit <higoge@gmail.com>
Date: Wed Dec 24 13:49:39 2014 +0800

03
........

commit后面的一串数字,是提交的编号(SHA1编码),也叫版本号。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ git log -p 01.txt # 显示某个文件的历次修改
commit 9cf50d94d4134f36199c19a4798fe84c81832515
Author: learnit <higoge@gmail.com>
Date: Wed Dec 24 13:49:39 2014 +0800

03

diff --git a/01.txt b/01.txt
index 181417e..7e556fd 100644
--- a/01.txt
+++ b/01.txt
@@ -1,2 +1,3 @@
line01
02
+03
......

1
2
3
4
$ git log --pretty=oneline # 在一行上显示log
9cf50d94d4134f36199c19a4798fe84c81832515 03
2e18697d9cf53454820091a5db86790102ddf8db 02
49805b0b3b55fe32219cd14d5a15583893836520 添加01.txt文档
1
2
3
4
5
$ git log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ad) \
%C(bold blue)[%an]%Creset' --abbrev-commit --topo-order --date=short # 变态的显示,不过更加清晰

* 9cf50d9 - (HEAD, master) 03 (2014-12-24) [learnit]
* 2e18697 - 02 (2014-12-24) [learnit]
* 49805b0 - 添加01.txt文档 (2014-12-24) [learnit]

比较

1
2
3
4
5
6
7
8
9
10
$ git diff # 暂存区与工作区的比较
diff --git a/01.txt b/01.txt
index fc52d75..b726728 100644
--- a/01.txt
+++ b/01.txt
@@ -3,3 +3,4 @@ line01
03
04
05
+06
1
2
3
4
5
6
7
8
9
10
11
$ git diff HEAD # 工作区+暂存区与当前版本的比较
diff --git a/01.txt b/01.txt
index 3b6f86c..b726728 100644
--- a/01.txt
+++ b/01.txt
@@ -2,3 +2,5 @@ line01
02
03
04
+05
+06
1
2
3
4
5
6
7
8
9
10
11
12
$ git diff 2e18 # 不需要把编号全部写出
diff --git a/01.txt b/01.txt
index 181417e..b726728 100644
--- a/01.txt
+++ b/01.txt
@@ -1,2 +1,6 @@
line01
02
+03
+04
+05
+06

HEAD表示当前版本。
HEAD~表示当前版本的前一个版本,或HEAD^
HEAD~~表示将当前版本的前两个版本, 或HEAD^^
HEAD~100表示当前版本的前100个版本。

撤销(后悔药)

1
$ git checkout -- 01.txt  # 放弃工作区的修改 !!!慎用!!!
1
2
3
$ git reset HEAD 01.txt # 移出暂存区的修改,放回工作区
重置后撤出暂存区的变更:
M 01.txt
1
2
3
$ git reset HEAD~  # 恢复到某个版本,所有的修改(包括暂存区中的修改)放回工作区
重置后撤出暂存区的变更:
M 01.txt
1
2
$ git reset --hard HEAD~ # 恢复到某个版本,放弃所有的修改
HEAD 现在位于 dfcfea8 05

--hard参数表示放弃所有的更改,还原后工作区干净。
不加--hard参数,即--soft,表示将到达版本之后的所有修改,包括暂存区的修改全部放置到工作区。
通过git status命令就可以看出--hard参数的作用。

1
2
3
4
5
6
7
8
9
10
$ git reflog # 记录了每次执行的命令
dfcfea8 HEAD@{13}: reset: moving to HEAD~
b28a718 HEAD@{14}: commit: 06
dfcfea8 HEAD@{15}: reset: moving to HEAD~
7cf36f0 HEAD@{16}: commit: 02.txt
dfcfea8 HEAD@{17}: commit: 05
dacd44e HEAD@{18}: commit: 04
9cf50d9 HEAD@{19}: commit: 03
2e18697 HEAD@{20}: commit: 02
49805b0 HEAD@{21}: commit (initial): 添加01.txt文档

当后悔撤销时,尤其是加了参数--hard时,可以通过此命令找回丢失的信息。

~~ EOF ~~

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Git基础使用-如何用Git把代码提交至仓库/新建仓库/同步代码/推送代码
Git基础使用-如何用Git把代码提交至仓库/新建仓库/同步代码/推送代码
0 0
Git 版本控制,看这篇就够了 (二)基础篇
Git 版本控制,看这篇就够了 (二)基础篇
0 0
Git基础教学1——安装、环境配置与基本设置
点击进入Git官网选择自己电脑的操作系统安装 之后进行傻瓜式安装(如果有需要更换下载路劲的自行更换),一直点下去即可。 安装成功后在根目录下运行git-bash.exe或者运行根目录下bin文件夹中的bash.exe或者鼠标右击选择Git Bash Here就可以开始使用命令。
0 0
开发工具—Git(2)基础指令
首先我们要知道,git仓库基本分为仓库,暂存区,工作区这三个区域。我们平时操作的就是工作区,当我们要操作的时候,就是在这三个状态下切换。将修改提交到本地仓库,提交记录内容为fristcommit。这些指令知道是什么加会用就行,之后我们会用开发和工具集成。这个gitadd.中的点的意思是将所有都加入。创建一个文件,将文件添加到暂存区(必须先初始化仓库)(提交暂存区到本地仓库(commit))(提交暂存区到本地仓库)(添加工作区到暂存区)
0 0
git在分支的基础上建分支
git在分支的基础上建分支
0 0
Linux java基础环境搭建 ->git基础环境
Linux java基础环境搭建 ->git基础环境
0 0
【GitHub】从0开始搭建GitHub环境系列之一——Git基础环境配置(用户名、邮件、密钥等)
【GitHub】从0开始搭建GitHub环境系列之一——Git基础环境配置(用户名、邮件、密钥等)
0 0
【Git & Github】第二章 ——Github的认识以及基础使用(2)
【Git & Github】第二章 ——Github的认识以及基础使用(2)
0 0
【Git & Github】第二章 ——Github的认识以及基础使用(1)
【Git & Github】第二章 ——Github的认识以及基础使用(1)
0 0
+关注
jeremy_wong
本博客全部转自我的个人博客,http://higoge.github.io,上面的文章更全。 联系我请发邮件到higoge@gmail.com或微博 @挨踢汪汪
文章
问答
文章排行榜
最热
最新
相关电子书
更多
百度万人研发团队 Git 工具链建设的挑战与思考
立即下载
华为Git实践:工作模式创新,及多中心分布式架构
立即下载
百度万人研发团队Git工具链建设的挑战与思考
立即下载