gpt4 book ai didi

git - 提交中所有已更改但未删除的文件的列表

转载 作者:太空狗 更新时间:2023-10-29 12:46:07 25 4
gpt4 key购买 nike

我正在调查 git 存储库。我想在每次提交中获取更改文件的列表。

所以,我所做的是通过命令访问每个提交

git reset --hard <commitId>

然后,我用

git show --pretty="format:" --name-only #{commitId}

这个问题是它在我不想要的 commitId 中提供了已删除的文件。我也试过:

git ls-files 

它不会返回已删除的文件,但是,它会返回所有现有文件的列表,这些文件是新的或在之前的提交中创建的。

例子:

>commit 1
add "file1"
add "file2"

>commit 2
change "file1"

>commit 3
add "file3"
delete "file2"

所以在这种情况下,我将访问每个提交。而且,如果我在提交 1 中,我想获得“file1”和“file2”的列表。如果我在提交 2 中,我将得到“file1”,如果我在提交 3 中,我将得到“file3”。

有什么想法吗?

最佳答案

尝试使用这个命令:

git show --diff-filter=AM --pretty="format:" --name-only #{commitId}

这是您在原始问题中提到的,添加了一个 --diff-filter 标志以限制仅添加(A)或修改(M)。有关您可以限制的文件类型的完整列表,请查看 git show 的文档。 .

正如@MauricioTrajano 在他的回答中提到的,您无需重置为提交即可使用 git show 对其进行调查。您只需要知道提交的 SHA-1 哈希值,只需在相关分支上使用 git log 即可找到它。

关于git - 提交中所有已更改但未删除的文件的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30905086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com