我在存储库中有一堆提交。我想看到两次提交之间更改的文件列表-从SHA1到SHA2。

我应该使用什么命令?


当前回答

将以下别名添加到~/.bash_profile文件中,然后运行source~/.bah_profile;现在,您随时需要从git存储库中查看上次提交、运行和显示文件中的更新文件。

alias showfiles='git show --pretty="format:" --name-only'

其他回答

Use

git log --pretty=oneline > C:\filename.log

它将只记录一行(--prey=oneline),这是更改文件的名称。它还会将所有详细信息记录到输出文件中。

这将显示文件中的更改:

git diff --word-diff SHA1 SHA2

似乎没有人提到开关--stat:

$ git diff --stat HEAD~5 HEAD
 .../java/org/apache/calcite/rex/RexSimplify.java   | 50 +++++++++++++++++-----
 .../apache/calcite/sql/fun/SqlTrimFunction.java    |  2 +-
 .../apache/calcite/sql2rel/SqlToRelConverter.java  | 16 +++++++
 .../org/apache/calcite/util/SaffronProperties.java | 19 ++++----
 .../org/apache/calcite/test/RexProgramTest.java    | 24 +++++++++++
 .../apache/calcite/test/SqlToRelConverterTest.java |  8 ++++
 .../apache/calcite/test/SqlToRelConverterTest.xml  | 15 +++++++
 pom.xml                                            |  2 +-
 .../apache/calcite/adapter/spark/SparkRules.java   |  7 +--
 9 files changed, 117 insertions(+), 26 deletions(-)

还有--numstat

$ git diff --numstat HEAD~5 HEAD
40      10      core/src/main/java/org/apache/calcite/rex/RexSimplify.java
1       1       core/src/main/java/org/apache/calcite/sql/fun/SqlTrimFunction.java
16      0       core/src/main/java/org/apache/calcite/sql2rel/SqlToRelConverter.java
8       11      core/src/main/java/org/apache/calcite/util/SaffronProperties.java
24      0       core/src/test/java/org/apache/calcite/test/RexProgramTest.java
8       0       core/src/test/java/org/apache/calcite/test/SqlToRelConverterTest.java
15      0       core/src/test/resources/org/apache/calcite/test/SqlToRelConverterTest.xml
1       1       pom.xml
4       3       spark/src/main/java/org/apache/calcite/adapter/spark/SparkRules.java

和--shortstat

$ git diff --shortstat HEAD~5 HEAD
9 files changed, 117 insertions(+), 26 deletions(-)

为了补充@artfurobot的答案,如果您想在两个分支之间显示更改的文件:

git diff --name-status mybranch..myotherbranch

注意优先顺序。如果您先放置较新的分支,那么它将显示文件已删除而不是已添加。

添加grep可以进一步细化:

git diff --name-status mybranch..myotherbranch | grep "A\t"

然后将只显示myotherbranch中添加的文件。

如果有人正在查找已更改文件的列表,包括暂存文件

git diff HEAD --name-only --relative --diff-filter=AMCR

git diff HEAD --name-only --relative --diff-filter=AMCR sha-1 sha-2

如果需要绝对路径,请删除--relative。