我可以在Windows Git Bash中运行什么命令,该命令将向我显示代码中写有“ TODO”的所有位置的文件名,行预览(上下文)和行号,仅限于新的文件和修改的文件?
这很笨拙,不打印行号:
function __greptodo {
QUERY="TODO"
for FILE in `git diff --name-only`; do
grep "$QUERY" $FILE 2>&1 >/dev/null
if [ $? -eq 0 ]; then
echo '———————————————'
echo $FILE 'contains' $QUERY
grep "$QUERY" $FILE 2>&1
fi
done
}
alias greptodo=__greptodo
这更好(显示上下文,包括新文件和修改的文件),但仍不打印行号:
grep -s "TODO" $(git ls-files -m)
答案 0 :(得分:1)
-n
标志告诉grep
显示行号,所以您很近。试试:
grep -sn "TODO" $(git ls-files -m)
要包含未跟踪的文件,请使用--others
(-o
)标志和--exclude-standard
标志以排除通常被Git忽略的文件:
grep -sn "TODO" $(git ls-files -mo --exclude-standard)