用Git看文件

时间:2015-07-24 23:17:47

标签: git shell scripting

我使用一个小脚本来查询Git最近更改过哪些文件,然后根据这些文件采取行动。

当调用该工具时,我运行 git status --porcelain 来获取要处理的文件列表。

但是在以下情况下会出现这种情况:

echo "lorum ipsum" > foo.txt
./tool `git status --porcelain` # tool acts upon foo.txt
git checkout .
./tool `git status --porcelain` # tool doesn't know to act upon foo.txt

有没有办法让Git告诉你哪个跟踪文件最后被修改过,即使它在Git眼中不再被改变了?

也许自上次Git查询以来上次更新的文件?或者在过去一小时内更新了文件?

1 个答案:

答案 0 :(得分:0)

我最接近提议的是我在“git status - list last modified date”中提到的:

IFS=''; git status -s | while read -n2 mode; read -n1; read file; \ 
  do echo $mode $(stat -c %y "$file") $file; \ 
done|sort

这允许我添加索引和组修改(自上次提交以来完成),从最旧到最新。
通过关注git status输出,可以避免检查所有尚未更改的文件 在问题的第二次调用伪代码时,foo.txt不会受到关注。