我知道如何在文件中运行gblame.
我知道如何在目录中的所有文件中grep内容.
我希望看到围绕那个包含内容的特定行的gblame.例:
$ blame -R "content" ./
Run Code Online (Sandbox Code Playgroud)
我看到了一个文件列表.我想要了解所有主题,并了解谁触及了这些代码行.
我想要git grep两个预先指定的单词(如果两个都存在,即ANDing)的文件,则假设这两个单词分别是word1和word2
我试过了
git grep -e 'word1' --and -e 'word2'
Run Code Online (Sandbox Code Playgroud)
我也尝试过
git grep 'word1'.*'word2'
Run Code Online (Sandbox Code Playgroud)
但两者都仅在word1和word2位于同一行时才检索结果,而第二个在行中排在第一位时不检索结果word2,这是我不希望的。
我想检索文件,即使两个单词不在同一行(我不确定将它们分开多少行,并且顺序也不重要;应该提取任何顺序)。
这可能吗 ?
我正在尝试在 Windows 机器上使用 git bash 的项目中的某些二进制运算符之后grep 所有换行符。
尝试了以下不起作用的命令:
$ git grep "[+-*\|%]\ *\n"
fatal: command line, '[+-*\|%]\ *\n': Invalid range end
$ git grep "[+\-*\|%]\ *\n"
fatal: command line, '[+\-*\|%]\ *\n': Invalid range end
Run Code Online (Sandbox Code Playgroud)
好的,我不知道如何在字符集中包含“-”,但是在删除它之后仍然可以从字面上\n匹配字符n:
$ git grep "[+*%] *\n"
somefile.py: self[:] = '|' + name + '='
^^^
Run Code Online (Sandbox Code Playgroud)
转义反斜杠一次 ( \\n) 无效,转义两次 ( \\\n) 会导致正则表达式匹配\n(字面意思)。
在这里 grep 的正确方法是什么?
我想为以下项目编写一个 git 别名:
git log --all --grep='Big boi'
Run Code Online (Sandbox Code Playgroud)
到目前为止我所拥有的是:
[alias]
search = "!f() { str=${@}; echo $str; git log --all --grep=$str; }; f"
Run Code Online (Sandbox Code Playgroud)
这与字符串完美匹配,但给出了错误,我似乎无法弄清楚如何将字符串传递给 grep 标志。
$ user in ~/src/repo on master ? git search 'Big boi'
Big boi
fatal: ambiguous argument 'boi': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
Run Code Online (Sandbox Code Playgroud)
如果有任何不同,我正在使用 zsh 。. .
我试过这个
git log -i --all --grep='/(?=.*fix)(?=.*a)(?=.*bug)/'
Run Code Online (Sandbox Code Playgroud)
但没有用。