如何找到与Git匹配某个模式的修改后的行?

时间:2014-01-05 02:04:45

标签: git triggers

我希望编写一个预先提交的Git触发器,用于查找不需要的更改。如何找到Git提交的与特定模式匹配的修改行,同时获取相应的文件名和行号?

1 个答案:

答案 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 grepexplained 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
}

但是在你的情况下,你想看看索引(即将提交),而不是现有的提交。