我想从代码仓库外部使用git grep,例如在vim中编辑文件。以下是有效的方法:
git -C /path/to/gitrepo/ grep 'my search'
问题在于结果显示的是相对路径,从
/path/to/gitrepo
开始。因此,我不能直接打开它们。有没有办法生成匹配项的完整文件路径?从
git
会很好,但也可以使用一个 hacky 解决方案来添加前缀并构建绝对路径。git -C $path grep pattern | sed s,^,$path,
就可以解决问题(假设路径中没有“,”符号)。
- torek[alias]
egrep = "!f1() { git grep --line-number \"$1\" | sed \"s,^,$PWD/,g\" | sed \"s/^\\(.*:[0-9]\\{1,10\\}\\):/\\1 /g\" ; }; f1"
git -C $path grep pattern | sed s,^,$path,
就可以解决问题(假设路径中没有“,”)。 - torek