我进行了一些更改以提交。如何查看为下一次提交准备的所有文件的差异?有一个方便的内衬吗?
gitstatus只显示暂存文件的名称,但我想查看实际的差异。
gitdiff(1)手册页显示:
git diff[--选项][--][…]此表单用于查看相对于索引所做的更改(下一次提交的暂存区域)。换句话说,这些差异是您可以告诉git进一步添加到索引中的,但您仍然没有。您可以使用gitadd(1)暂存这些更改。
我进行了一些更改以提交。如何查看为下一次提交准备的所有文件的差异?有一个方便的内衬吗?
gitstatus只显示暂存文件的名称,但我想查看实际的差异。
gitdiff(1)手册页显示:
git diff[--选项][--][…]此表单用于查看相对于索引所做的更改(下一次提交的暂存区域)。换句话说,这些差异是您可以告诉git进一步添加到索引中的,但您仍然没有。您可以使用gitadd(1)暂存这些更改。
当前回答
缓存对我不起作用。。。其中,灵感来自git log
gitdifforigin/<branch><branch>完成。
其他回答
默认情况下,gitdiff用于显示未添加到git更新文件列表中的更改。但是,如果您想显示添加或分段的更改,则需要提供额外的选项,让git知道您对分段或添加的文件diff感兴趣。
$ git diff # Default Use
$ git diff --cached # Can be used to show difference after adding the files
$ git diff --staged # Same as 'git diff --cached' mostly used with latest version of git
实例
$ git diff
diff --git a/x/y/z.js b/x/y/z.js index 98fc22b..0359d84 100644
--- a/x/y/z.js
+++ b/x/y/z.js @@ -43,7 +43,7 @@ var a = function (tooltip) {
- if (a)
+ if (typeof a !== 'undefined')
res = 1;
else
res = 2;
$ git add x/y/z.js
$ git diff
$
一旦你添加了文件,你就不能使用默认的“gitdiff”。你必须这样做:-
$ git diff --cached
diff --git a/x/y/z.js b/x/y/z.js index 98fc22b..0359d84 100644
--- a/x/y/z.js
+++ b/x/y/z.js @@ -43,7 +43,7 @@ var a = function (tooltip) {
- if (a)
+ if (typeof a !== 'undefined')
res = 1;
else
res = 2;
您可以使用此命令。
git diff --cached --name-only
gitdiff的--cached选项表示获取暂存文件,--name only选项表示只获取文件的名称。
如果您有多个文件进行了阶段性更改,那么使用git add-i,然后选择6:diff,最后选择您感兴趣的文件可能更实用。
简单的图形使这一点更加清晰:
差异比较
显示工作目录和索引之间的更改。这将显示已更改但未准备提交的内容。
git diff—缓存
显示索引和HEAD之间的更改(这是该分支上的最后一次提交)。这将显示已添加到索引中并为提交而暂存的内容。
git diff头
显示工作目录和HEAD之间的所有更改(包括索引中的更改)。这将显示自上次提交以来的所有更改,无论它们是否为提交而暂存。
也:
365Git上有更多细节。
要查看特定阶段文件的差异,可以使用
git diff --staged -- <path>...
例如
git diff --staged -- app/models/user.rb