我想在我的源代码的所有脏目录上运行make
的脚本 - 是否有办法通过cmd行值以某种方式返回git status
的输出?
基本上,我希望能够弹出一组更改,并运行此脚本来构建每个目录,而不是单独导航到每个目录并构建它们。
答案 0 :(得分:3)
试试这个:
dirs = `git diff --name-only | xargs dirname | sort -u`.lines.map(&:chomp)
puts dirs
打破管道:
git diff --name-only
:列出已修改文件的名称xargs dirname
:从stdin获取文件列表并输出其目录(将foo/bar.c
转换为foo
)sort -u
:从目录列表中删除重复项。在红宝石方面:
`command`
:运行命令(如在shell中)并返回其输出(作为字符串)String#lines
:返回分为行String#chomp
:从字符串末尾删除任何换行符(String#lines
没有)。