我有一个巨大的补丁,我想将其分成多个逻辑git提交。大量更改只是简单地更改变量名称或函数调用,以便可以使用grep轻松找到它们。如果我可以将任何与正则表达式匹配的更改添加到索引中,然后在gitgui中进行清理,这将节省我大量的手动工作。是否有使用git中的正则表达式或从grep的某些输出(例如行号)逐行更新索引的好方法?我找到了asimilarquestion,但我不确定如何通过正则表达式类型的搜索构建临时文件。 最佳答案 patchutils有一个命令grepdiff可用于实现此目的。#checkthattheregexsearc
我喜欢gitgrep来搜索checkin存储库的所有文件。这很棒。但是是否可以使用它(或其他一些git命令)来查找文件(独立于内容)?目前我这样做:$find.|grepmiddleware这有效,但它没有使用git索引,这意味着它会遍历每个找到的文件,并报告与.gitignore匹配的文件。有什么巧妙的技巧吗? 最佳答案 也许你想要gitls-files列出索引中的文件?(并自动调整git工作目录中的当前目录) 关于git-如何在gitrepo中grep文件?,我们在StackOver
我想使用gitlog来显示所有不匹配给定模式的提交。我知道我可以使用以下内容来显示所有与模式匹配的提交:gitlog--grep=如何反转匹配的意义?我正在尝试忽略消息中“跳到版本...”的提交。编辑:我希望我的最终输出非常冗长。例如git日志--pretty--stat。所以gitlog--format=oneline的输出对我不起作用。 最佳答案 这将通过Git2.4+(Q22015)成为可能:见commit22dfa8a通过ChristophJunghans(junghans):log:teach--invert-grepop
是否可以在Git控制源项目的所有分支中运行gitgrep?还是有其他命令要运行? 最佳答案 问题“Howtogrep(search)committedcodeinthegithistory?”建议:gitgrep$(gitrev-list--all)搜索所有提交,其中应包括所有分支。另一种形式是:gitrev-list--all|(whilereadrevision;dogitgrep-F'yourWord'$revisiondone)您可以在thisarticle中找到更多示例:Itriedtheaboveononeproject
在使用gitgrep搜索git存储库时,有没有办法排除某些路径/目录/文件?类似于普通grep命令中的--exclude选项?我需要使用gitgrep,因为直接使用grep在大型git存储库上运行速度太慢。 最佳答案 在git1.9.0中,“魔法词”exclude被添加到pathspec中。所以如果你想在每个文件中搜索foobar除了匹配*.java你可以这样做:gitgrepfoobar--':(exclude)*.java'或者使用!“简写”排除:gitgrepfoobar--':!*.java'请注意,在gitv2.12之前的
我过去某个时候删除了一个文件或文件中的一些代码。我可以在内容中进行grep(而不是在提交消息中)吗?一个非常糟糕的解决方案是grep日志:gitlog-p|grep但是,这不会立即返回提交哈希。我试过gitgrep但无济于事。 最佳答案 要搜索提交内容(即实际的源代码行,而不是提交消息等),您需要执行以下操作:gitgrep$(gitrev-list--all)gitrev-list--all|xargsgitgrep如果您遇到“参数列表太长”错误,将会起作用。如果您想将搜索限制在某个子树(例如,“lib/util”),您需要将其传
我正在尝试解析df-h命令的输出。例如:FilesystemSizeUsedAvailUse%Mountedon/dev/mapper/VGExaDb-LVDbSys130G17G12G58%//dev/sda1496M38M433M8%/boot/dev/mapper/VGExaDb-LVDbOra199G18G76G19%/u01tmpfs252G90M252G1%/dev/shmdbfs-dbfs_user@:/4.0T283G3.7T8%/dbfs_direct我只想要“可用性”列下的值。但是awk命令并没有像我想要的那样工作,因为每行中的单词数不一样。当我运行df-h|awk
这个问题在这里已经有了答案:Howto'grep'acontinuousstream?(13个答案)关闭8年前。我正在尝试通过检查日志来调试一个场景,这是我的命令tail-feclipse.log|grep'enimation'|grep-i'tap'基本上我想做的是,在所有的线条中,我正在打印带有动画的线条,然后在所有的动画中,我想看到带有“点击”的动画。这是返回空结果的示例数据*******enimationerror*********TapExpand*******enimationerror*********TapShrink这将返回空结果。如果我运行这个命令tail-fecl
我知道冒号:应该是文字,所以我不清楚为什么grep匹配所有行。这是一个名为“test”的文件:cattest123|44444546|4444666666|56787777777|7890675::1我需要将行与::1匹配。当然,实际情况比较复杂,不能简单的搜索“::1”。我尝试了很多迭代,比如grep-E'^[0-9]|[0-9]:'testgrep-E'^[0-9]|[0-9]::1'test但他们返回所有行:123|44444546|4444666666|56787777777|7890675::1我希望只匹配最后一行。知道这是为什么吗??这是GNU/Linuxbash。谢谢!
我一直在想办法找出只有N个字符出现的行。[root@exampleDIR]#grep-E"6{,1}"test.txt654366256668686866661161我想要的是让grep打印出以下内容:[root@exampleDIR]#grep-E"6{,1}"test.txt65431161我错过了什么? 最佳答案 使用awk我会:$awk'/6/&&!/6.*6/'file65431161它翻译成grep就像:$grep6file|grep-v6.*665431161编辑:@Sundeep使用6作为字段分隔符并计算字段的聪明想