为什么`git diff`在`git add'之后没有报告文件更改` 为什么git diff认为没有变化
…即使为什么`git diff`在`git add'之后没有报告文件更改` 为什么git diff认为没有变化,git,git-diff,git-add,Git,Git Diff,Git Add,…即使git status将其报告为已修改 git diffdiff与索引相比较,而不是与您的HEAD修订版相比较。通过运行gitadd,您已经将更改放在了索引中,因此当然没有区别!使用 git diff HEAD查看树状态与HEAD修订之间的差异,或 git diff--cached,查看索引和头版本之间的差异 因为默认情况下,git diff会检查暂存区域和工作副本之间的差异。当您git add时,暂存区域与工作副本匹配,因此diff不会报告任何更改 添加--cached标志会告诉diff
git status
将其报告为已修改
git diff
diff与索引相比较,而不是与您的HEAD
修订版相比较。通过运行gitadd
,您已经将更改放在了索引中,因此当然没有区别!使用
查看树状态与git diff HEAD
修订之间的差异,或HEAD
,查看索引和git diff--cached
头版本之间的差异
git add
时,暂存区域与工作副本匹配,因此diff不会报告任何更改
添加
--cached
标志会告诉diff-to-diff针对头部请尝试git-diff--staged
命令
下面列出了可用的备选方案
git diff
显示索引/暂存文件和工作文件之间的更改。因为在您的情况下,git add
将您的文件和更改移动到暂存区域,所以没有显示/看到任何修改
git diff——分阶段执行
显示标头和索引/暂存之间的更改gitdiff--cached
也做同样的事情<代码>暂存
和缓存
可以互换使用
git差异头
显示头文件和工作文件之间的更改
git diff$commit$commit
显示两次提交之间的更改
git-diff-origin
显示头部和远程/原点之间的差异遇到完全相同的问题
- 添加使用git Add filename1.c创建的新文件
- 对已经是存储库跟踪系统一部分的其他文件名2.c进行另一个更改
- 执行git diff,您将只看到对filename2.c的更改。对filename1.c的更改将不会显示
- 但是,如果执行git状态,您将看到filename1.c和filename2.c中的更改
- 执行git commit-a-m“对filename1.c和filename2.c的更改”等等
- 推一推
您将看到filename1.c已提交
$ git status
On branch master
Your branch is ahead of 'origin/master' by 2 commits.
(use "git push" to publish your local commits)
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: file-added
modified: file-with-changes << it knows there are changes
$ git diff
(nothing)
$ git diff rev-hash
diff --git a/file-with-changes b/file-with-changes
index d251979..a5fff1c 100644
--- a/file-with-changes
+++ b/file-with-changes
.
..