git diff用法解释

git diff 比较的是工作目录树与暂存区之间的区别。

git diff --cached 比较的是暂存区和版本库最后一个版本的区别。

git diff HEAD 比较的是工作目录树(包括暂存的和未暂存的修改)与版本库最后一个版本的差别。

 

这三个应用可以简单地理解为:

 如果你想看自己对照前一个版本所做的修改用: git diff HEAD

如果你有边修改边保存的习惯,打个比喻:

你做git add可以比喻成你做保存(ctrl+s),而git diff就是看你哪些东西没保存,git diff --cached则是看哪些东西保存了。

 

举例:

最开始你修改了一些东西,但没保存(git add)

bash$ git diff
diff --git a/FunctionTest.c b/FunctionTest.c
index 5dad004..38f483c 100644
--- a/FunctionTest.c
+++ b/FunctionTest.c
@@ -28,7 +28,9 @@ void FunctionTest()
        functionTest4(char1);
        functionTest5(char1, char2);
        functionTest6(float1);
-} int functionTest1()
+}
+
+int functionTest1()
 {
        int localVar = 7;
        return localVar + globalVar;
高亮的是做的更改。

然后你保存,git add .

这时你git diff看不到任何东西。

之后你又修改了一行,这时git diff 查看没保存的:

bash$ git diff
diff --git a/FunctionTest.c b/FunctionTest.c
index 38f483c..036c62c 100644
--- a/FunctionTest.c
+++ b/FunctionTest.c
@@ -29,7 +29,7 @@ void FunctionTest()
        functionTest5(char1, char2);
        functionTest6(float1);
 }
-
+new
 int functionTest1()
 {
        int localVar = 7;
从git status又可以看出,你保存过修改,也有部分未保存:

bash$ git status 
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   FunctionTest.c
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   FunctionTest.c
#

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值