0
根据本书版本控制与Git,“git diff显示您的工作目录和索引之间的区别,它暴露工作目录中的脏东西,因此是您的下一个提交阶段的候选人。 “在git diff中比较哪些文件?
“git diff显示您的工作目录和索引之间的区别”是什么意思?当你修改一个文件并运行git diff时,暂存区中没有任何东西可以让git比较工作目录,因为你还没有登台,所以它比较什么?
根据本书版本控制与Git,“git diff显示您的工作目录和索引之间的区别,它暴露工作目录中的脏东西,因此是您的下一个提交阶段的候选人。 “在git diff中比较哪些文件?
“git diff显示您的工作目录和索引之间的区别”是什么意思?当你修改一个文件并运行git diff时,暂存区中没有任何东西可以让git比较工作目录,因为你还没有登台,所以它比较什么?
如果您的存储库状态为是干净的,意味着您尚未修改任何文件,那么索引与提交HEAD指向的存储库状态相匹配。
在这种情况下,如果修改文件,然后执行git diff
,则修改后的文件(在您的工作区域中)将与索引进行比较,该索引将显示与将其与当前提交进行比较相同的差异。但是,如果您现在创建该文件(git add that-file
),然后再次修改该文件,并执行另一个git diff
,则会将修改后的文件(在您的工作区中)与索引中的暂存和修改文件进行比较。这与现在与HEAD提交的比较不同。
如果您运行这些命令,你会看到git diff
与C,而不是用C比较B:
git init .
echo a >test.txt
git add .
git commit -m "Initial commit"
echo b >test.txt
git add .
echo c >test.txt
git diff
输出:
diff --git i/test.txt w/test.txt
index 2fea07c..12d6973 100644
--- i/test.txt
+++ w/test.txt
@@ -1 +1 @@
-b
+c
该指数不包括 “一无所有”,它包含处于最新提交状态的存储库的内容。 – mkrieger1
与使用git diff HEAD的上次提交进行比较有什么不同? –
直到您修改索引后才会有所不同。 – mkrieger1