gpt4 book ai didi

linux - 将 'git status' 和 find 命令与 mmin 或 mtime 选项结合起来

转载 作者:太空狗 更新时间:2023-10-29 11:15:37 26 4
gpt4 key购买 nike

'git status' 命令给出自上次提交以来更改的文件列表。

带有 mmin 或 mtime 选项的 find 命令给出了在给定时间长度内保存的文件列表。但它也会包括我编辑过然后撤消更改的文件,即那些内容没有被更改的文件。

我需要的是获取给定时间长度内已修改(内容更改)的文件列表。可能吗?

谢谢

最佳答案

你要的是 Git whatchanged .

这是一个使用 whatchanged 来显示添加的文件的示例(我并没有在我使用的测试 repo 中碰巧修改过文件,但是您可以轻松地将结果限制为修改过的文件而不是添加的文件):

$ git whatchanged --after='2012-07-07 17:20' --before='2012-07-28 23:31' --diff-filter=A -r --oneline --name-only
82b9dcf F
E/F
95a02ce D
D

如手册中所述,whatchanged 使用 rev-listdiff-tree在幕后,whatchanged 还使用了 rev-listdiff-tree 可用的选项。 diff-tree --diff-filter 选项将:

Select only files that are Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R), have their type (i.e. regular file, symlink, submodule, ...) changed (T), are Unmerged (U), are Unknown (X), or have had their pairing Broken (B).

如果你想直接使用rev-listdiff-tree(避免commit log whatchanged想要输出),你可以使用:

$ git diff-tree --diff-filter=A -r --name-only $(git rev-list -n 1 --before='2012-07-07 17:20' HEAD) $(git rev-list -n 1 --before='2012-07-28 23:31' HEAD)
D
E/F

关于linux - 将 'git status' 和 find 命令与 mmin 或 mtime 选项结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11809730/

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