快速检测Git存储库中的添加/删除文件



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

我想在某个时间点"快照"存储库,然后将某种摘要保存在存储库之外的位置(我一定不能更改存储库)。

然后,我希望能够检测到Git存储库中是否添加或删除了任何文件(但我不在乎更改),这些文件自上次快照以来就不在.gitignore中。我希望此检查非常快(这是一个编辑插件 - 响应时间至关重要)。

如果我只关心订员文件,则解决方案将是微不足道的:将HEAD COMIL HASH存储在快照中,并比较提交。但是,我 do 关心未投入和未跟踪的文件 - 我唯一不关心的文件是.gitignore中的文件。


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


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

以下"如何分散文件并从命令中输出?"

#!/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命令的整个输出。

相关内容

  • 没有找到相关文章

最新更新