1. git diff #是工作区(work dict)和暂存区(stage)的比较
  2. git diff –cached #是暂存区(stage)和分支(master)的比较

    stage或cache与虽说是暂存区,缓冲区,但commit并不是像想像那样把这个区清空,估计只是打个同步的标志,内容还在。git add是把工作区的更新提交到暂存区,git commit是把暂存区内容更新到仓库。所以经过add, commit,修改再add,再修改,有可能会出现工作区、缓冲区、和仓库三者都不同。
    

使用:git diff 是你工作区跟statge的比较,这个时候可以看你开发过程中修改了哪些内容 git diff –cached 是看你stge区和仓库分支上的比较,你add后但是没有commit, 这个时候只是在stage中,可以确认下修改是否正确,如果正确无误可以commit合并到分支。

Git管理的是修改,一个文件经过了多次修改,但是如果不add到暂存区,那就不会加入到commit。

新增了一行,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,创建一个新文件,也算一个修改,删除文件也可以是个修改。(更改.gitignore中的文件不是修改)。

git add命令只是把工作区当前的修改提交到暂存区中。

git commit一次将暂存区中的内容提交到版本库中。

为了防止工作区的修改没有被提交到暂存区中,或则查看工作区和暂存区之间的差异,可以使用git diff指令。

此外,还可以 git diff HEAD -- file # 比较的是工作区中的文件与版本库中文件的差异。

廖雪峰关于工作区暂存区的讲解

廖雪峰管理修改

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐