我正在尝试编写一个git钩子,当它们被推送到服务器时,它会对文件进行语法检查。
我已使用
成功显示了包含文件名的日志git log --name-only --pretty = format:'%H'--diff-filter = AM
这为我提供了以下格式的日志:
\< \ SHA-1>
路径/到/文件
路径/到/ file2的
...
这将只提供已添加或修改的文件。
我想更进一步,并有一个符合以下每个标准的日志:
如何在没有代码的情况下实现这一目标? ie)使用git或git和common unix命令的某种组合的命令行解决方案。
答案 0 :(得分:0)
如果您需要自给定修订版rev
以来添加或修改的文件列表,
git diff --name-only --diff-filter=AM $rev..
应该足够了。
如果你真的需要知道为每个文件引入更改的最新非合并提交,那么类似下面的内容可能会起作用,但速度会非常慢。
for rev in $(git rev-list --min-parents=1 --max-parents=1 HEAD); do
echo $rev
for file in $(git diff --name-only $rev^..$rev); do
[ -z "$(git log -1 $rev.. -- $file)" ] && echo "$file"
done
echo
done