我正在尝试在我的所有本地更改的文件中搜索字符串(例如,搜索字符串“TODO”)。这包括已经暂存的文件和已更改但尚未添加到暂存区域的文件。
答案 0 :(得分:2)
回答我自己的问题。我能够使用以下命令
git diff --name-only | xargs grep 'My search string goes here'
答案 1 :(得分:0)
这是一个bash片段,可以在Debian上完成此任务:
for file in `git status -s -uno`
do
if [[ ! $file =~ [A-Z] ]]; then
echo "$file"
grep -n "TODO" $file
fi
done
说明:
git status -s -uno
是git状态的缩写形式,但不包括未跟踪的文件。
for循环中的if条件跳过git status -s
的状态部分,以避免搜索不存在的文件。
最后-n选项ot grep打印行号。只需将TODO更改为您想要找到的任何内容。
我想它也应该在windows中使用git-bash ......
答案 2 :(得分:0)
正确答案是
git diff-index -S{STRINGTOSEARCH} -u HEAD
新添加的文件必须通过
添加到暂存 git add path/to/filename
仅在添加/删除的字符串中搜索有意的字符串。