【问题标题】:How to list "Changes not staged for commit" ordered by modification date?如何列出按修改日期排序的“未暂存的更改”?
【发布时间】:2018-12-28 01:11:33
【问题描述】:

我有一个包含 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

【问题讨论】:

    标签: git


    【解决方案1】:

    添加未更改的文件没有任何作用,因此您可以使用 find 获取在日期范围内修改的文件并将其通过管道传输到 git add

    例如添加最近一天修改的文件(不包括.git目录)。

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

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

    【讨论】:

      猜你喜欢
      • 2012-08-09
      • 1970-01-01
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-07
      • 1970-01-01
      相关资源
      最近更新 更多