git 命令 git diff 查看 Git 区域文件的具体改动 您所在的位置:网站首页 git查看当前文件夹内容 git 命令 git diff 查看 Git 区域文件的具体改动

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

2024-03-23 08:15| 来源: 网络整理| 查看: 265

 

 

 查看 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 staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working 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 diff a diff --git a/a b/a index e69de29..9daeafb 100644 --- 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 diff a // git add 后工作区和暂存区内容一致了,对比,

 

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

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

//对比暂存区与本地仓库,可以看到具体变化 [root@ci-node1 git_test]# git diff --cached a diff --git a/a b/a index e69de29..9daeafb 100644 --- a/a +++ b/a @@ -0,0 +1 @@ +test

这时候执行git commit

[root@ci-node1 git_test]# git commit -m "modify a" [master af5856a] modify a 1 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 diff a diff --git a/a b/a index 9daeafb..f761ec1 100644 --- a/a +++ b/a @@ -1 +1 @@ -test +bbb

 

没有输出,因为暂存区和本地仓库是一致的 // 没有输出,因为暂存区和本地仓库是一致的 [root@ci-node1 git_test]# git diff --cached a

 

 

 总结:

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


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有