我希望编写一个预先提交的Git触发器,用于查找不需要的更改。如何找到Git提交的与特定模式匹配的修改行,同时获取相应的文件名和行号?
答案 0 :(得分:2)
在Junio C Hamano(Git的主要维护者)的“Fun with git grep”文章之后,您可以使用git grep
:
git grep --cached -n -e 'What You are looking for' -- '*.typeOfFile'
git grep --cached -n -e "What You are looking for" -- '*.typeOfFile'
例如:
C:\Users\VonC\prog\go\src\github.com\VonC\asciidocgo>
git grep --cached -n -e "testa" -- "*.go"
abstractNode.go:3:testa
^^^^^^^^^^^^^^^ |
(file name) --> (line number)
注意:对于现有提交,您可以合并git grep
(explained here)和git blame
个功能,如blog post
ggb.sh
# runs git grep on a pattern, and then uses git blame to who did it
ggb() {
git grep -n $1 | while IFS=: read i j k; do git blame -L $j,$j $i | cat; done
}
但是在你的情况下,你想看看索引(即将提交),而不是现有的提交。