在Git代码库中,我想列出包含特定单词的所有提交.我试过这个
git log -p | grep --context=4 "word"
Run Code Online (Sandbox Code Playgroud)
但它并不一定会给我回文件名(除非它比我搜索的单词少了5行.我也尝试过
git grep "word"
Run Code Online (Sandbox Code Playgroud)
但它只给我现在的文件,而不是历史.
如何搜索整个历史记录以便我可以跟踪特定单词的更改?我的意思是在我的代码库中搜索单词的出现以跟踪更改(在文件历史记录中搜索).
因此,如果我有一个名为foo.rb的文件,并且它给我一个名为bar的缺失方法的错误,那么我想搜索foo.rb的历史记录bar以查看该字符串是否曾在过去定义过.
我发现这个搜索所有Git历史记录的字符串?
但是这会搜索所有文件.我只想在一个文件中搜索.
我试图使用Github上的代码搜索,以搜索包含类似字符的一些代码行=,+等等.
我从https://help.github.com/articles/searching-code/#considerations-for-code-search了解到这些字符是通配符并且必须进行转义,否则它们将被忽略.
这是一个例子:"if \(done is True \)",另一个:"if(done is True)".如您所见,两者都返回相同的"您的查询包含一个被忽略的字符"警告在搜索栏的右侧.我的逃避似乎没有做任何事情,我得到的结果是忽略了字符.
如何在此搜索中转义字符?
我刚开始使用git.Rebase是很棒的东西.我应该在一个特定的早期案例中使用它.
是否有一种完全可以接受的方法来为了明确的提交而重新提交旧的提交?
初学者的一个问题:git历史记录有多种搜索方式。对我来说,不清楚命令之间的区别到底是什么:
git log,例如git log -S 'for what you search' --all在所有分支中搜索字符串并
git log -G 'search for regexpr' --all搜索 regexpr。例如参见这里git log --grep 'pattern'git rev-list,例如git rev-list --grep='string' --allgit grep,例如git grep "string or regexpr" $(git rev-list --all)从这里gitk,例如gitk file.txtGUI 界面git log --all --full-history -- **/thefile.*从这里搜索历史记录中的文件名。git diff --word-diff-regex=. > changes.txt结合grep -oP '\+[^\+]+\+' changes.txt | tr -d '\+'显示基于字符的变化。从这里。如果尚未提交更改,这甚至可以工作。我的理解很差
git …我发现.razmatazz在HTML文件中使用了某个CSS类,但是这个标识符不在任何现有的CSS文件中.这解释了不正确的演示,我已经"踢了一段时间".
> git log -S razmatazz --source --all
847d9d8 Thu Jun 25 10:05:07 2018 Joe C helpful commit message.
9384843 Wed May 20 14:10:34 2018 Joe C ever more helpful commit message.
2093483 Mon Apr 15 11:15:51 2018 Joe C yet another great message.
Run Code Online (Sandbox Code Playgroud)
但同时我一直在合并/取消合并/重命名我的CSS文件,因此我不知道CSS文件名.
如何确定添加或删除给定标识符的文件名?
由于"pickaxe"git选项没有说明是否添加或删除了标识符,我会尝试找到的哈希值和它们的前辈
git show 847d9d8:/path/to/file
git show 847d9d8^:/path/to/file
git show 9384843:/path/to/file
git show 9384843^:/path/to/file
git show 2093483:/path/to/file
git show 2093483^:/path/to/file
Run Code Online (Sandbox Code Playgroud)
以获取丢失的定义.
有没有办法在所有分支/所有版本中搜索某个字符串?本质上相当于使用 ctrl+shift+f 来搜索整个解决方案......但是对于所有版本和分支?
远景,但我想我会问。如果没有,至少有文件名吗?询问 github.com,但如果是在 gitshell 中,那也很酷。
我亲爱的朋友们决定在某个未合并的分支中删除一些代码。
是否有一个简单的 git 命令来列出差异包含给定字符串的文件,或者我是否必须迭代?
我需要与其他更改分开提交重构(方法名称更改),因此我需要确定差异包含新方法名称的文件。