如何列出按修改日期排序的“未暂存的更改”?

时间:2018-12-27 16:05:20

标签: git

我有一个带有Web应用程序的存储库。 它在几个月前进行了更新,从而导致数千个已删除/修改的文件。 此后,也做了一些小的更改。 我还无法确定有多少事件影响了多少个文件,但也许只有1-2个事件影响了几个文件。 但是什么也没有上演/承诺。

现在,我想确定要放入不同提交的文件组。 我想我可以看看修改日期。 我想我可以假定所有删除都在大更新中,因此我可以将所有删除都放入一个提交中。 对于修改后的文件,我需要确定具有相同(或相似)日期的文件组。

git ls-files sort by modification time 给了我一个提示,使我做了git ls-files -mz | xargs -0 ls -alt >> out.txt 给我一个大致排序的清单。我猜xargs可以批量工作时,它会跳过日期。 (我将输出写入文件,因为我无法获得寻呼机(|更多))

因此,一旦我得到了更清洁的列表,或者手动清除了列表,我将执行类似xargs -a file -d '\n' git add的操作。听起来合理吗? 还是有更直接的方法对特定日期范围的文件进行git add

1 个答案:

答案 0 :(得分:1)

添加未更改的文件无济于事,因此您可以使用find来抓取在日期范围内修改的文件并将其通过管道传输到git add

例如,要添加在前一天修改过的文件(.git目录除外)。

find . -mtime -1 -not -path "./.git" -not -path "./.git/*" | xargs -l1 git add

未更改的文件将不执行任何操作,被忽略的文件将发出警告,否则将不执行任何操作。