提问者:小点点

如何在git存储库中的修订之间获取更改的文件列表?


我需要获取从初始提交到最新提交的所有更改文件的列表。

所以,这是我的案例:

$ git init .
$ echo "test1" > test1
$ git add test1
$ git commit -m "test 1" 
$ echo "test2" > test2
$ git add test2
$ git commit -m "test 2"
$ echo "test3" > test3
$ git add test3
$ git commit -m "test 3"

$ git log 
commit 13b72d5468dfbb9582ad4d225cf1e6e8bb17f1bc (HEAD -> master)
Author: carlspring <...>
Date:   Fri Feb 12 18:58:58 2021 +0000

    test 3

commit 6955a875fdf57efaa3859827b7f975fa26095d38
Author: carlspring <...>
Date:   Fri Feb 12 18:58:56 2021 +0000

    test 2

commit 9410cf6a98986794c8ffe38c15cc60eaa054705c
Author: carlspring <...>
Date:   Fri Feb 12 18:58:56 2021 +0000

    test 1
carlspring@carlspring:/tmp/test$ git log --all --full-history --pretty=%H
13b72d5468dfbb9582ad4d225cf1e6e8bb17f1bc
6955a875fdf57efaa3859827b7f975fa26095d38
9410cf6a98986794c8ffe38c15cc60eaa054705c

我想获取一个列表,该列表生成自第一次提交以来所有更改的文件,如下所示:

test1
test2
test3

现在,我显然已经在这里看到了所有推荐使用git diff-tree的答案,所以尝试了一下:

$ git diff-tree --no-commit-id --name-only -r 9410cf6a98986794c8ffe38c15cc60eaa054705c..HEAD
test2
test3

为什么我没有得到test1呢?


共1个答案

匿名用户

你应该可以使用git空树id来做到这一点:

$ git diff --name-only  4b825dc642cb6eb9a060e54bf8d69288fbee4904 HEAD
test1
test2
test3