【问题标题】:Quickly detect added/removed files inside git repository快速检测 git 存储库中添加/删除的文件
【发布时间】:2015-05-14 09:02:21
【问题描述】:

假设我有一个带有 .gitignore 的 git 存储库。

我想在某个时间点“快照”存储库,并将某种摘要保存在存储库之外的位置(我不能更改存储库)。

然后,我希望能够检测自上次快照以来 .gitignore 中 git 存储库中是否有任何文件添加或删除(但我不关心更改)。我希望这个检查非常快(它用于编辑器插件 - 响应时间至关重要)。

如果我只关心提交的文件,解决方案将是微不足道的:将 HEAD 提交哈希存储在快照中,然后比较提交。但是我确实关心未提交和未跟踪的文件 - 我唯一不关心的文件是 .gitignore 中的文件。


基本上我想在某个时间点存储git ls-files -c -o --exclude-standard 的输出,然后看看它是否在以后发生变化,而不处理整个输出。


我更喜欢纯 git 解决方案,否则我真的很喜欢跨平台的 bash/batch 解决方案。

【问题讨论】:

    标签: git bash batch-file


    【解决方案1】:

    关注“How to diff a file and output from the command?

    #!/bin/bash
    
    cd /path/to/repo
    d=$(git ls-files -c -o --exclude-standard | diff yourfile -)
    if [[ "${d}" != "" ]]; then
      # there are diffs
    fi
    

    但这仍然会使用git ls-files 命令的整个输出。

    【讨论】:

      猜你喜欢
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多