asen's Blog

Happy coding

解决Linux操作系统下部分文件乱码的问题(尤其是压缩文件解压后的文件乱码)

原Windows rar压缩的文件,Linux系统下解压后打开里边的文件,内容全部乱码。

 

之所以出现乱码是因为所压缩的文件中,有的文件是以中文命名。而在windows下中文的编码一般为gbk,而linux下中文的编码一般为utf8,所以在windows下正常打开的文件,到linux下很可能会出现乱码。

 

解决办法为:使用命令iconv对文件内容编码进行转换。例如我有一个文件"linux常用命令"在windows下打开正常,而在linux下打开则会乱码,其解决办法为在终端输入:

 

iconv -f gbk -t utf8 linux常用命令.txt > linux常用命令.txt.utf8(这里有必要提醒一下这时候终端必须运行在这个文件当前所在的目录下)

 

之后再打开"linux常用命令.txt.utf8"这个文件,该文见的乱码问题就解决了。

网络爆红:穷二代的18条标准

 

少数富二代骄奢淫逸的恶行不仅引起社会公愤,甚至惊动了党。现在,保增长、扩内需、惠民生的任务那么重,还让党为这帮人操心,拿着纳税人的钱为他们办班进行党性教育,的确过分。

  但我觉得富二代要是这么混世界,其实不需要党太操心,靠市场经济规律就自然淘汰了。所谓自作孽,不可活。

  其实,如今更值得关注的是贫二代。

  虽说这世道已经倡导致富光荣好多年,但感到周围自称穷人和穷人家的孩子巨多,有些鱼龙混杂的意思。一种说法是,那些在改革开放中没有致富的产业工人或者农民,他们的子女如今有很多仍属于弱势群体,他们广泛地存在于城市和农村之中,被称为是“穷二代”。但太笼统,不够清晰。

  为了方便党和政府帮扶以及全社会同情关怀,兄弟不才,试图为一个标准贫二代画像,供批判指正。

  一、在各种拼爹游戏中失败。尤其是消费和就业方面劣势更加明显。

  二、感到当农民工和大学生区别不大,于是勇敢地放弃高考。

  三、别人说:家里钱不是问题;你说:问题是家里没钱。

  四、寒暑假,经常需要到田里收庄稼或在城里打工挣学费。

  五、有当城管的冲动,好罩着天天被驱逐的父母。

  六、经常有扼住命运喉咙的冲动,但每次喉咙都被命运扼住。

  七、如果读过《红楼梦》,最受触动的应该是晴雯的判词:心比天高,命比纸薄。

  八、对“宁当富人三奶,不嫁穷人”说法强烈认同。

  九、从不思考永远有多远这样的蠢问题,却经常为明天发愁。

  十、经常看《读者》之类的“心灵鸡汤”,但好多姐妹为生活所迫成了“鸡”。

  十一、在城市经常被取笑甚至欺负。熟悉各种人的白眼。

  十二、从迷恋个人奋斗到觉得奋斗根本改变不了命运。

  十三、最熟悉的交通工具是农用车、火车和长途大巴,经常仰望天空看飞机却没坐过。

  十四、熟悉人民币分币的购买力。

  十五、家里往往有没有户口的兄弟姐妹。

  十六、有仇富心理,并十分痛恨贪官,觉得他们不仅夺取了你父辈的财富,更夺取了你翻身的机会。

  十七、害怕自己尤其是家人生病,特别是慢性病,因为没医保。

  十八、大体认同这样一种说法:生活就像强奸,无法反抗就要学会享受;工作就像轮奸,你不行就要别人上;社会就像自慰,一切都要靠自己的双手解决。

  呵呵,就列这么多了,不足之处请您补充。如果你不符合其中任何一项标准,那就恭喜你——你不是贫二代,向这个时代唱《感恩的心》吧。

  如果符合其中部分标准,那就需要高度警惕,努力鼓起生活的风帆,最终还要靠你的努力——多看看大长今,并坚信那样的传奇能在现实世界重演,祝你好运。

  如果全部符合,那就对你无比同情,明天去买大乐透吧——你不相信否极泰来吗?要珍惜和把握这个社会给你翻身的机会。

键盘上的符号的英语读法

 

` backquote 反引号
~ tilde
! exclam
@ at
# numbersign,英语国家是hash,美语是pound,音乐里作sharp,如C#
$ dollar
% percent
^ caret
& ampersand
* asterisk,star(美语),数学公式中作multiply
( parenleft,opening parentheses
) parenright,closing paretheses
- minus;hyphen连字符,不读
_ underscore
+ plus
= equal
[ bracketleft,opening bracket
] bracketright,closing bracket
{ braceleft
} braceright
; semicolon
: colon
' quote
" doublequote
/ slash
\ backslash 反斜杠
| bar
, comma
< less
> greater
. period
? question
  space 空格

其他符号的读法

<        is less than
>        is more than
≮        is not less than  
≯        is not more than
≤        is less than or equal to 小于或等于号
-        hyphen 连字符  
≥        is more than or equal to 大于或等于号
'        apostrophe 省略号,英文中省略字符用的撇号;所有格符号
%        percent
-        dash 破折号
‰        per mille
∞        infinity 无限大号
∝        varies as 与…成比例
( )        parentheses 圆括号  
√        (square) root 平方根
[ ]        square brackets 方括号  
∵        since; because 因为
《 》        French quotes 法文引号;书名号  
∴        hence 所以
…        ellipsis 省略号
∷        equals, as (proportion) 等于,成比例
¨        tandem colon 双点号
∠        angle 角
∶        ditto 双点号
⌒        semicircle 半圆
‖        parallel 双线号
⊙        circle 圆
/        virgule 斜线号  
○        circumference 圆周
~        swung dash 代字号
△        triangle 三角形
§        section; division 分节号
⊥        perpendicular to 垂直于
→        arrow 箭号;参见号
∪        union of 并,合集
∩        intersection of 交,通集  
∫        the integral of …的积分
±        plus or minus 正负号
∑        summation of 总和
×        is multiplied by 乘号
°        degree 度
÷        is divided by 除号  
′        minute 分
″        second 秒
≠        is not equal to 不等于号  
≡        is equivalent to 全等于号  
℃        Celsius degree 摄氏度
≌        is equal to or approximately equal to 等于或约等于号



希腊字母的读法

α Α alpha ['&aelig;lfa]
β Β beta ['bi:ta / 'beita]
γ Γ gamma ['g&aelig;ma] 
δ Δ delta ['delta]
ε Ε epsilon ['epsilan / ep'sailan]
ζ Ζ zeta ['zi:ta]
η Η eta ['i:ta / 'eita]
θ Θ theta ['θita]
ι Ι iota [ai'outa]
κ Κ kappa ['k&aelig;pa]
λ Λ lamda ['l&aelig;mda]
μ Μ mu [mju:]
ν Ν nu [nju:]
ξ Ξ xi [ksai / gzai / zai]
ο Ο omicron [ou'maikran]
π Π pi [pai]
ρ Ρ rho [rou]
σ Σ sigma ['sigma]
τ Τ tau [tau]
υ Υ upsilon ['ju:psilon / ju:p'sailan] o 是反 c 。
φ Φ phi [fai]
χ Χ chi [kai]
ψ Ψ psi [psi:]
ω Ω omega ['oumiga / ou'mi:ga]

原文转自  oliverlyb.blogbus.com/logs/10188276.html

 

 

人的一生, 有三件事不能等(转载)

 转自糊涂网家园http://www.hutuw.com

 

留几枚柿子在树上
在以色列农村,每当庄稼成熟收割的时候,靠近路边的庄稼地四个角都要留出一部分不收割。四角的庄稼, 只要需要,任何人都可以享用。他们认为,是上帝给了曾经多灾多难的犹太民族今天的幸福生活,他们为了感恩,就用留下田地四角的庄稼这种方式报答今天的拥 有。这样既报答了上帝,又为那些路过此地又没有饭吃的贫困的路人给予方便。庄稼是自己种的,留一点给别人收割,他们认为,分享是一种感恩,分享是一种美 德。 
    无独有偶,亚洲某国的乡村公路边有很多柿子园。金秋时节,这里随处可见农民采摘柿子的忙碌身影,但是,采摘结束后,有些熟透的柿子 也不会被摘下来。这些留在树上的柿子,成为一道特有的风景,一些游人经过这里时,都会说,这些柿子又大又红,不摘岂不可惜。但是当地的果农则说,不管柿子 长得多么诱人,也不会摘下来,因为这是留给喜鹊的食物。 
    是什么使得这里的人留有这样一种习惯,原来,这里是喜鹊的栖息地,每到冬天,喜鹊都在果树上 筑巢过冬。有一年冬天,天特别冷,下了很大的雪,几百只找不到食物的喜鹊一夜之间都被冻死了。第二年春天,柿子树重新吐绿发芽,开花结果了。但就在这时, 一种不知名的毛虫突然泛滥成灾。那年柿子几乎绝产。从那以后,每年秋天收获柿子时,人们都会留下一些柿子,作为喜鹊过冬的食物,留在树上的柿子吸引了许多 喜鹊到这里度过冬天,喜鹊仿佛也会感恩,春天也不飞走,整天忙着捕捉树上的虫子,从而保证了这一年柿子的丰收。 
    在收获的季节里,别忘了留一些柿子在树上,因为,给别人留有余地,往往就是给自己留下了生机与希望。   
    留几枚柿子在树上,那将是一道人间最美的风景。 
 
人的一生, 有三件事不能等
第一是"贫穷"   
贫穷不能等,因为一但时间久了,你将习惯贫穷,到时不但无法突破自我,甚至会抹杀了自己的梦想,而庸庸碌碌的过一辈子。 
 
第二是"梦想"   
梦想不能等,因为人生不同的阶段,会有不同的历练和想法,试想一个问题:如果你20岁时的梦想,在60岁的时候才得以实现,那会是什么样的一个情况?   
譬如说你20岁时的梦想是希望能买到一辆法拉利的跑车,然后到德国的无限速公路狂飙。你一直努力工作,好不容易到60岁了,总算买得起跑车了,但要实现年轻时的梦想,恐怕也是心有余而力不足吧。
 
第三是"家人"   
家人不能等,或许我们还年轻,未来有很多的时间可以让我们摸索、打拼,但是家人呢?他们还有时间等我们成功吗?还有时间等我们赚到钱,让他们过好日子,让他们以我们为荣?
 
树欲静而风不止,子欲养而亲不待。这是很多人的痛,也是很多人一辈子的遗憾。
 
人的上半生:要不犹豫;人的下半生:要不后悔.   
 
活在当下,把握每次的机会,因为机会稍纵即逝,为自己的生命找到出路! 最近在经济日报看到一篇由郑丹瑞写的文章,值得分享,内容如下:
急事,慢慢的说;   
大事,清楚的说;   
小事,幽默的说;   
没把握的事,谨慎的说;   
没发生的事,不要胡说;   
做不到的事,别乱说;   
伤害人的事,不能说;   
讨厌的事,对事不对人的说;  
开心的事,看埸合说;  
伤心的事,不要见人就说;  
别人的事,小心的说;  
自己的事,听听自己的心怎么说;  
现在的事,做了再说;   
未来的事,未来再说。

git reset 的用法

  git reset 的用法

  这两天开始学git了,老师给了一份资料让看看,总体看着还不太难,可是在学到git reset的时

候,却发现老师说的太过笼统和概括了,没法理解!在终端上怎么运行也看不出个所以然。从网

上找了些资料都是太简约了,没有反应出最直接的东西,不过这里我要特别说一下

《看日记学git》之二十五  http://roclinux.cn/?p=622     这篇文章还是不错的很是适合初学

者理解git reset的工作原理。但是我在操作的过程中,还是发现有些话说的不够明白,自己又

结合了Git 版本控制系統 (1)by ihower ihower.idv.tw/blog/archives/2591 

的文章中关于“git diff的进行比较的作用”。终于理解了git reset的用法。在说git reset 之前我感

觉有必要先弄清楚git diff的作用,在此分享!希望大家给予支持!

1. git diff 的用法和作用

2. git reset的用法和作用

 


1 git diff 有三个命令,git diff  ,git diff --cached,git diff HEAD.

这里我有比要 说明一下,cached 是有缓存的意思。HEAD 是工作树的最新的一次提交

$ git show HEAD^  # 查看HEAD 的父版本更新细节
$ git show HEAD^^ # 查看HEAD 的祖父版本更新细节
$ git show HEAD~4 # 查看HEAD 的祖父之祖父的版本更新细节

结合一个图会更容易理解一点:

这个图很清楚的说明了映像,和提交的步骤,git add 命令是首先映像到staging area 阶

段,但这时只是将工作树的改变先缓存在一个地方,真正的文件还没有改变。只有git commit

后工作树中的文件才改变。

git diff 比较的是前两个阶段即working directory(一下称1段) 和staging area(一下称2段).

git diff --cached 比较的是第二个阶段staging area 和 repository(一下称3段).

git diff HEAD 比较的是repository 和 working directory.

好这里git diff 就说到这。言归正传,请读者按下面的步骤操作,你很快就会对git reset有

深刻的认识了!


2.git reset

happyasen@asen-desktop:~
>$ mkdir git25
happyasen@asen-desktop:~
>$ cd git25
happyasen@asen-desktop:~/git25
>$ vi roc.c   /*按照下面的内容建立roc.c*/
happyasen@asen-desktop:~/git25
>$ cat -n roc.c /*查看roc.c的内容*/
     1    /*
     2     * ================================================         

    4     *       Filename:  roc.c
     5     *
     6     *    Description:  
     7     *
     8     *        Version:  1.0
     9     *        Created:  2009年08月22日 11时28分17秒 CST
    10     *       Revision:  none
    11     *       Compiler:  gcc
    12     *
    13     *         Author:   (),
    14     *        Company:  
    15     *
    16     * =============================================
    17     */
    18    
    19    #include <stdio.h>
    20    int
    21    main()
    22    {
    23            printf("He is a young man.\n");
    24            return 0;
    25    }
happyasen@asen-desktop:~/git25
>$ git init
Initialized empty Git repository in /home/happyasen/git25/.git/
happyasen@asen-desktop:~/git25
>$ git add .
happyasen@asen-desktop:~/git25
>$ git commit -m "1"
Created initial commit 98d8694: 1
 1 files changed, 25 insertions(+), 0 deletions(-)
 create mode 100644 roc.c
happyasen@asen-desktop:~/git25
>$ git log  /*利用git log 我们可以清楚的看到roc.c的变更历史*/
commit 98d86943e91a48a87c4d6c51f3b8273229bbfefe
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 11:30:52 2009 +0800

    1
happyasen@asen-desktop:~/git25
>$ vi roc.c  /*向roc.c 中加入内容,第一次修改*/
happyasen@asen-desktop:~/git25
>$ git diff   /*比较你会发现工作树中的内容还没有映像到2段阶段。所以2,3段

中实际上还是第一次提交的内容,所以git diff 和git diff HEAD有输出。

而git diff --cached没有输出*/
diff --git a/roc.c b/roc.c
index c9e2e4e..4fc1b3e 100644
--- a/roc.c
+++ b/roc.c
@@ -21,5 +21,6 @@ int
 main()
 {
         printf("He is a young man.\n");
+        printf("He is 24 years old.\n");
         return 0;
 }

happyasen@asen-desktop:~/git25
>$ git diff --cached
happyasen@asen-desktop:~/git25
>$ git diff HEAD
diff --git a/roc.c b/roc.c
index c9e2e4e..4fc1b3e 100644
--- a/roc.c
+++ b/roc.c
@@ -21,5 +21,6 @@ int
 main()
 {
         printf("He is a young man.\n");
+        printf("He is 24 years old.\n");
         return 0;
 }
happyasen@asen-desktop:~/git25
>$ git add ./*将1段的内容映像到2段,2段中的内容更新成了1段的内容。

这时候在用diff 就会发现 git diff已经没有输出了,而git diff --cached

和git diff HEAD 有输出*/
happyasen@asen-desktop:~/git25
>$ git diff
happyasen@asen-desktop:~/git25
>$ git diff --cached
diff --git a/roc.c b/roc.c
index c9e2e4e..4fc1b3e 100644
--- a/roc.c
+++ b/roc.c
@@ -21,5 +21,6 @@ int
 main()
 {
         printf("He is a young man.\n");
+        printf("He is 24 years old.\n");
         return 0;
 }
happyasen@asen-desktop:~/git25
>$ git diff HEAD
diff --git a/roc.c b/roc.c
index c9e2e4e..4fc1b3e 100644
--- a/roc.c
+++ b/roc.c
@@ -21,5 +21,6 @@ int
 main()
 {
         printf("He is a young man.\n");
+        printf("He is 24 years old.\n");
         return 0;
 }
happyasen@asen-desktop:~/git25
>$ git commit -m "2"/*提交! 这时 2段的内容提交到3段。

这时候在diff 我想你应该知道会出现什么样的结果了吧*/
Created commit 09161f5: 2
 1 files changed, 1 insertions(+), 0 deletions(-)
happyasen@asen-desktop:~/git25
>$ git diff
happyasen@asen-desktop:~/git25
>$ git diff --cached
happyasen@asen-desktop:~/git25
>$ git diff HEAD
/*为了加深理解我们在改变一次roc.c的内容,即进行第二次修改文件*/
happyasen@asen-desktop:~/git25
>$ vi roc.c /*第二次修改为如下cat -n roc.c内容*/
happyasen@asen-desktop:~/git25
>$ git log/*查看文件更改日志可以看到第三次修改还没有加入到git仓库中*/
commit 09161f59270d9e5ac828926fe1f23bd6941bf468
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 15:03:13 2009 +0800

    2

commit 98d86943e91a48a87c4d6c51f3b8273229bbfefe
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 11:30:52 2009 +0800

    1
happyasen@asen-desktop:~/git25
>$ cat -n roc.c
     1    /*
     2     * ===================================

     3     *
     4     *       Filename:  roc.c
     5     *
     6     *    Description:  
     7     *
     8     *        Version:  1.0
     9     *        Created:  2009年08月22日 11时28分17秒 CST
    10     *       Revision:  none
    11     *       Compiler:  gcc
    12     *
    13     *         Author:   (),
    14     *        Company:  
    15     *
    16     * ===================================

    17     */
    18    
    19    #include <stdio.h>
    20    int
    21    main()
    22    {
    23            printf("He is a young man.\n");
    24            printf("He is 24 years old.\n");
    25            printf("He is very handsome.\n");
    26            return 0;
    27    }
happyasen@asen-desktop:~/git25
>$ git diff/*再次用diff进行比较一下,加深diff的使用*/
diff --git a/roc.c b/roc.c
index 4fc1b3e..314a544 100644
--- a/roc.c
+++ b/roc.c
@@ -22,5 +22,6 @@ main()
 {
         printf("He is a young man.\n");
         printf("He is 24 years old.\n");
+        printf("He is very handsome.\n");
         return 0;
 }
happyasen@asen-desktop:~/git25
>$ git diff --cached
happyasen@asen-desktop:~/git25
>$ git diff HEAD
diff --git a/roc.c b/roc.c
index 4fc1b3e..314a544 100644
--- a/roc.c
+++ b/roc.c
@@ -22,5 +22,6 @@ main()
 {
         printf("He is a young man.\n");
         printf("He is 24 years old.\n");
+        printf("He is very handsome.\n");
         return 0;
 }
happyasen@asen-desktop:~/git25
>$ git add roc.c
happyasen@asen-desktop:~/git25
>$ git log /*从这可以看出,没有提交是不生成变更日志的*/
commit 09161f59270d9e5ac828926fe1f23bd6941bf468
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 15:03:13 2009 +0800

    2

commit 98d86943e91a48a87c4d6c51f3b8273229bbfefe
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 11:30:52 2009 +0800

    1

happyasen@asen-desktop:~/git25
>$ git diff
happyasen@asen-desktop:~/git25
>$ git diff --cached
diff --git a/roc.c b/roc.c
index 4fc1b3e..314a544 100644
--- a/roc.c
+++ b/roc.c
@@ -22,5 +22,6 @@ main()
 {
         printf("He is a young man.\n");
         printf("He is 24 years old.\n");
+        printf("He is very handsome.\n");
         return 0;
 }
happyasen@asen-desktop:~/git25
>$ git diff HEAD
diff --git a/roc.c b/roc.c
index 4fc1b3e..314a544 100644
--- a/roc.c
+++ b/roc.c
@@ -22,5 +22,6 @@ main()
 {
         printf("He is a young man.\n");
         printf("He is 24 years old.\n");
+        printf("He is very handsome.\n");
         return 0;
 }

happyasen@asen-desktop:~/git25
>$ git add roc.c
happyasen@asen-desktop:~/git25
>$ git commit -m "3"
Created commit 49e90bf: 3
 1 files changed, 1 insertions(+), 0 deletions(-)
happyasen@asen-desktop:~/git25
>$ git log /*提交后变更日志有了第二次修改*/
commit 49e90bf24881a4c5fe18e903daca0d52ef361623
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 15:24:17 2009 +0800

    3

commit 09161f59270d9e5ac828926fe1f23bd6941bf468
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 15:03:13 2009 +0800

    2

commit 98d86943e91a48a87c4d6c51f3b8273229bbfefe
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 11:30:52 2009 +0800

    1

/*下面就让我们进入reset 阶段,看一看reset的功能*/

git reset 有三个常用命令:

   git-reset 命令有三个选项:--mixed 、 --soft 和 --hard 。我们在日常使用

中仅使用前两个选项; 第三个选项由于杀伤力太大, 容易损坏项目仓库,需谨慎使
用。
   --mixed 是 git-reset 的默认选项,它的作用是重置索引内容, 将其定位到指定
的项目版本, 而不改变你的工作树中的所有内容, 只是提示你有哪些文件还未更
新。
   --soft 选项既不触动索引的位置, 也不改变工作树中的任何内容,但是会要
求它们处于一个良好的次序之内。该选项会保留你在工作树中的所有更新并使之
处于待提交状态。

看到上面给出的标准定义。我想你肯定是一头雾水了吧?!

没关系下面跟我一块去探探到底这是什么东东?

happyasen@asen-desktop:~/git25
>$ git reset HEAD^/*利用默认选项回到第二次修改的地方,然后看看

发生了什么*/
roc.c: locally modified
happyasen@asen-desktop:~/git25
>$ git diff
diff --git a/roc.c b/roc.c
index 4fc1b3e..314a544 100644
--- a/roc.c
+++ b/roc.c
@@ -22,5 +22,6 @@ main()
 {
         printf("He is a young man.\n");
         printf("He is 24 years old.\n");
+        printf("He is very handsome.\n");
         return 0;
 }
happyasen@asen-desktop:~/git25
>$ git diff --cached
happyasen@asen-desktop:~/git25
>$ git diff HEAD
diff --git a/roc.c b/roc.c
index 4fc1b3e..314a544 100644
--- a/roc.c
+++ b/roc.c
@@ -22,5 +22,6 @@ main()
 {
         printf("He is a young man.\n");
         printf("He is 24 years old.\n");
+        printf("He is very handsome.\n");
         return 0;
 }
happyasen@asen-desktop:~/git25
>$ git log
commit 09161f59270d9e5ac828926fe1f23bd6941bf468
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 15:03:13 2009 +0800

    2

commit 98d86943e91a48a87c4d6c51f3b8273229bbfefe
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 11:30:52 2009 +0800

    1
happyasen@asen-desktop:~/git25
>$ cat -n roc.c
     1    /*
     2     * ============================
     3     *
     4     *       Filename:  roc.c
     5     *
     6     *    Description:  
     7     *
     8     *        Version:  1.0
     9     *        Created:  2009年08月22日 11时28分17秒 CST
    10     *       Revision:  none
    11     *       Compiler:  gcc
    12     *
    13     *         Author:   (),
    14     *        Company:  
    15     *
    16     * ============================
    17     */
    18    
    19    #include <stdio.h>
    20    int
    21    main()
    22    {
    23            printf("He is a young man.\n");
    24            printf("He is 24 years old.\n");
    25            printf("He is very handsome.\n");
    26            return 0;
    27    }

/*看到了吗,发生了什么?默认选项回到的是父版修改后但还没有映像的状态,

也就是相当于,第二次刚刚修改好,但还没有add 到2段。默认选项就是实现的 这个

功能,明白了吧?*/
happyasen@asen-desktop:~/git25
>$ git commit -a -m "3"/*让我们把第二次修改提交了,回到没有

git reset 的时候*/
Created commit 8554dd1: 3
 1 files changed, 1 insertions(+), 0 deletions(-)
happyasen@asen-desktop:~/git25
>$ git log
commit 8554dd1247166e67a3603987832efbba4220dd99
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 15:29:08 2009 +0800

    3

commit 09161f59270d9e5ac828926fe1f23bd6941bf468
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 15:03:13 2009 +0800

    2

commit 98d86943e91a48a87c4d6c51f3b8273229bbfefe
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 11:30:52 2009 +0800

    1

/*看看第二个选项soft的作用*/
happyasen@asen-desktop:~/git25
>$ git reset --soft HEAD^
happyasen@asen-desktop:~/git25
>$ git log
commit 09161f59270d9e5ac828926fe1f23bd6941bf468
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 15:03:13 2009 +0800

    2

commit 98d86943e91a48a87c4d6c51f3b8273229bbfefe
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 11:30:52 2009 +0800

    1
happyasen@asen-desktop:~/git25
>$ git diff
happyasen@asen-desktop:~/git25
>$ git diff --cached
diff --git a/roc.c b/roc.c
index 4fc1b3e..314a544 100644
--- a/roc.c
+++ b/roc.c
@@ -22,5 +22,6 @@ main()
 {
         printf("He is a young man.\n");
         printf("He is 24 years old.\n");
+        printf("He is very handsome.\n");
         return 0;
 }
happyasen@asen-desktop:~/git25
>$ git diff HEAD
diff --git a/roc.c b/roc.c
index 4fc1b3e..314a544 100644
--- a/roc.c
+++ b/roc.c
@@ -22,5 +22,6 @@ main()
 {
         printf("He is a young man.\n");
         printf("He is 24 years old.\n");
+        printf("He is very handsome.\n");
         return 0;
 }
/*看到了把,soft是回到了第二次已经修改了,

也add 了,但是没有提交的那步*/


happyasen@asen-desktop:~/git25
>$ git commit -m "3"/*再次还原*/
Created commit 34b07aa: 3
 1 files changed, 1 insertions(+), 0 deletions(-)
happyasen@asen-desktop:~/git25
>$ git log
commit 34b07aa80945b8b8b05f7bdc7617cf5923c01f41
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 15:32:04 2009 +0800

    3

commit 09161f59270d9e5ac828926fe1f23bd6941bf468
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 15:03:13 2009 +0800

    2

commit 98d86943e91a48a87c4d6c51f3b8273229bbfefe
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 11:30:52 2009 +0800

    1

/*来看看hard 的作用*/

happyasen@asen-desktop:~/git25
>$ git reset --hard HEAD^
HEAD is now at 09161f5 2
happyasen@asen-desktop:~/git25
>$ git log
commit 09161f59270d9e5ac828926fe1f23bd6941bf468
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 15:03:13 2009 +0800

    2

commit 98d86943e91a48a87c4d6c51f3b8273229bbfefe
Author: happyasen <happyasen@asen-desktop.(none)>
Date:   Sat Aug 22 11:30:52 2009 +0800

    1
happyasen@asen-desktop:~/git25
>$ git diff
happyasen@asen-desktop:~/git25
>$ git cached
git: 'cached' is not a git-command. See 'git --help'.
happyasen@asen-desktop:~/git25
>$ git diff --cached
happyasen@asen-desktop:~/git25
>$ git diff HEAD
/*看到了吧。直接把第二次修改完全删除了*/

看了这些我想你对git reset 应该有透彻的认识了吧!