git如何查看缓存区文件内容_git 命令 git diff 查看 Git 区域文件的具体改动

查看 Git 区域文件的具体改动 git diff

git status 只能让我们知道文件在 Git 区域内的改动状态,但如果我们想查看某个文件内具体改了什么(也可以理解为在不同 Git 区域中的差异),此时需要用 git diff 命令。

对于 b 文件,由于是新增的文件,其只存在于工作区,且处于 Untracked 状态,Git 认为无论是哪两个 Git 区域之间的比对都没有意义,得到的结果是没有区别。

而对于 a文件,由于已经被提交到仓库了,处于 Git 管理中,所以这个文件同时存在于三个 Git 空间(工作区,暂存区,仓库),我们在工作区内对其进行了文件改动,无论是比对工作区 vs 暂存区或者工作区 vs 仓库,得到的结果应该都是 a 文件里的具体变化内容。而如果比对暂存区 vs 仓库,得到的结果也应该是没有区别。

git diff 用在查看文件内容变化

查看文件当前变动(工作区 vs 暂存区)git diff

工作区做了改动

//改动 a.txt 文件后可看到文件的具体变化

[root@ci-node1 git_test]# echo "test">>a

看看git stauts,文件被修改了,这个文件被git仓库管理

[root@ci-node1 git_test]# git status

On branch master

Changes not stagedforcommit:

(use"git add ..."to update what will be committed)

(use"git checkout -- ..." to discard changes inworking directory)

modified: a

no changes added to commit (use"git add" and/or "git commit -a")

看看文件里面改了什么 git status无法看到,使用git diff

对比工作区和暂存区

[root@ci-node1 git_test]# git diffadiff --git a/a b/a

index e69de29..9daeafb100644

--- a/a+++ b/a

@@-0,0 +1@@+test

暂存区和工作区的a做了哪些改动,加了test

//将 a 文件的变动暂存后,查看变化

[root@ci-node1 git_test]# git add a

[root@ci-node1 git_test]# git status

On branch master

Changes to be committed:

(use"git reset HEAD ..."to unstage)

modified: a//对比工作区与暂存区,无变化,git diff 没有输出

[root@ci-node1 git_test]# git diffa//git add 后工作区和暂存区内容一致了,对比,

查看文件当前变动(工作区 vs 暂存区)git diff –cached

这时候对比暂存区与本地仓库,可以看到具体变化

//对比暂存区与本地仓库,可以看到具体变化

[root@ci-node1 git_test]# git diff --cached adiff --git a/a b/a

index e69de29..9daeafb100644

--- a/a+++ b/a

@@-0,0 +1@@+test

这时候执行git commit

[root@ci-node1 git_test]# git commit -m "modify a"[master af5856a] modify a1 file changed, 1 insertion(+)//这时候再执行git diff --cached ,没有输出

[root@ci-node1 git_test]# git diff --cached a

暂存区和本地仓库一样了

再做个验证

//工作区是干净的,三个区域 工作区、暂存区、本地仓库内容是一致的

[root@ci-node1 git_test]# git status

On branch master

nothing to commit, working tree clean

改动 a 文件后,工作区改动了,再看变化

//改动 a 文件后,工作区改动了,再看变化

[root@ci-node1 git_test]# echo "bbb">a

现在工作区和暂存区不一致的,但暂存区和本地仓库是一致的

//现在工作区和暂存区不一致的,但暂存区和本地仓库是一致的

[root@ci-node1 git_test]# git diffadiff --git a/a b/a

index 9daeafb..f761ec1100644

--- a/a+++ b/a

@@-1 +1@@-test+bbb

没有输出,因为暂存区和本地仓库是一致的

//没有输出,因为暂存区和本地仓库是一致的

[root@ci-node1 git_test]# git diff --cached a

总结:

git diff 比较的是 工作区和暂存区

git diff --cached 比较的是 暂存区和本地仓库

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值