Git Grep 颜色选项解释和/或比较

2024-05-03

我正在尝试自定义我的 Git 颜色。

读完后文档 https://git-scm.com/docs/git-config,我找到了我想要设置的选项。

除了 Grep 之外,一切都工作正常。 我意识到,我过去并没有真正使用过它。

我想用相同的调色板为其设置颜色,但我无法测试其中的一些......

我不知道什么matchContext and match参考以及它们有何不同matchSelected and selected.

matchSelected为我搜索的实际文本设置颜色,而selected参考行级(?)context那场比赛的。

那么,什么是match正在做?什么是matchContext放?到底哪里有关于这些的详细描述呢?

Anyone?


以下是链接文档的内容,稍作修改以使其效果更好:

context

上下文行中的不匹配文本(使用时-A, -B, or -C)

matchContext

匹配上下文行中的文本

matchSelected

匹配所选行中的文本

selected

所选行中的文本不匹配

(我遗漏了match;我们稍后会把它放回去)。假设我们跑git grep findme,这样我们就有了一个搜索词。

这三个技术术语如下:

  • 匹配文本: 这个应该是很明显的了。我们正在搜索文字字符串findme所以这是该字符串的每次出现。对于这些类型的固定字符串,对匹配进行颜色编码并不像对于模式那样必要:如果我们正在搜索模式,那么查看模式匹配的内容可能特别有用。

  • 上下文线:这里的线索是提到了三个标志。您可以获得“之前”上下文(-B),“之后”上下文(-A), 或两者 (-C),这基本上意味着如果您正在搜索findmeGit 发现,它不仅会打印出带有单词的行findme其中,还有该行之前和之后的一些行。

    请注意,这些之前和/或之后的行可能not have findme在他们身上——但话又说回来,他们可能会!

  • 选定的行:Git 有点隐藏了这意味着什么,但是基于上面的内容,这是相当可以猜测的:我们正在搜索这个词findme它发生在某些行中。所以这些线是selected,这将它们与任何没有的上下文行区分开来findme在他们中;这些行未被选择。 (但见下文!)

这是一个搜索单词的例子or。 Git 会着色or默认情况下,为红色,否则不着色,所以我运行:

git -c color.grep.selected=green grep -C 2 -n or

添加行号以及使用selected=green。不幸的是,我无法让 StackOverflow 为我对此进行颜色编码,所以我将使用bold其中 Git 使用绿色,并且italics使用红色的地方:

pfod.py-11-
pfod.py-12-This is basically a hybrid of a class and an OrderedDict,
pfod.py:13:or, sort of a data-only class. When an instance of the
pfod.py-14-class is created, all its fields are set to None if not
pfod.py-15-initialized.

在这里,我们在两侧都有两条未选定的线,根本没有任何颜色;和中间选定的一行,出现两次or在选定的一行内。

在某些情况下,这些行would只是上下文,实际上有一个匹配:

pfod.py-47- self[field] = None
pfod.py-48- if len(kwargs):
pfod.py:49: raise TypeError('unexpected kwargs %s' % kwargs.keys())
pfod.py-50- if len(args):
pfod.py:51: raise TypeError('unconsumed args %r' % tuple(args))
pfod.py-52-
pfod.py-53- def __getattr__(自身,属性):

在这里,我们在外边缘有两条未选定的线,然后是两条选定的线,中间有一条未选定的线。这意味着上下文线也可以是选定的线!他们可以两者兼得不匹配文本和matching文本。这有一些特别奇怪的地方,因为如果上下文行有匹配,它就会成为选定的行 - 那么为什么会有一个matchContext根本吗?如果上下文行有匹配项,它将更改为选定的行。

通常情况下,设置color.grep.matchContext从来没有任何影响,因为如果有is上下文行中的匹配,它会变成选定的行并且color.grep.matchContext不再适用。但使用时-v一切都被调换了。这是哪里文档 https://git-scm.com/docs/git-grep定义(尽管不是很好)这个术语selected:

-v, --invert-match

选择不匹配的行。

也就是 grep 的-v option inverts线路选择。通常,找到匹配意味着该行被选择,所以你得到selected(默认=无,但我设置green上面)和matchSelected(默认=“粗体红色”)颜色。但与-v,每条有匹配的行都是de-选择的,并且仅non- 选择匹配的行。那么现在怎么办were选择上下文行,取消选择匹配行。因此,现在对于匹配线,我们再次得不到任何颜色,除了匹配本身,我们得到任何颜色matchContext我们设置的颜色(默认再次为“粗体红色”)。 (当然,只有当您打开上下文时,才会出现匹配的行,因为 grep 只输出未选定的行作为上下文行。您还可以设置color.grep.context得到那些-v上下文相关的线条已着色。)

Finally:

match

匹配文本(与设置相同matchContext and matchSelected)

这只是设置两者的简写。什么时候matchContext是无用的(非-v),它有效地作为别名matchSelected. When matchSelected没用(-v),它有效地作为别名matchContext。 Git 在内部使用它来设置“粗体红色”默认值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git Grep 颜色选项解释和/或比较 的相关文章

  • 推送时发生 Git 错误 - update_ref 失败

    当我尝试推送本地提交时遇到问题 这可能是在 Android Studio 崩溃时发生的 这是错误 update ref 引用 refs remotes origin master 失败 无法锁定 ref refs remotes origi
  • 代表 Git 存储库的数学结构是什么

    我正在学习 Git 如果我能描述一下代表 Git 存储库的数学结构 那就太好了 例如 它是一个有向无环图 它的节点代表提交 它的节点有代表分支等的标签 每个节点最多一个标签 没有标签使用两次 我知道这个描述不正确 我只是想解释我正在寻找的内
  • git diff - 只显示哪些目录发生了变化

    有没有办法只列出已更改的目录 如果我在 git root 的话 project 我更改的文件是 project subtool file1 project subtool file2 project subtool3 file1 我只是想
  • 如何将更改移出主分支

    基本问题 但这一直发生在我身上 进行更改working branch 切换到master git merge working branch git push cap deploy 到舞台 泡一杯新茶 然后我回来思考其他事情并开始做出一些改变
  • NodeJs 环境变量与配置文件

    实际上 我有一个 NodeJS Express 应用程序 其配置文件包含主机 端口 JWT 令牌 数据库参数等参数 问题是 将这些参数直接保留在环境变量上 没有任何配置文件 并访问它们 而不需要在所有组件和模块中进行 require 配置是
  • git Push over sshfs 失败,并显示“关闭 sha1 文件时出错:错误的文件描述符”

    我们使用 sshfs 通过 SSH 安装文件系统 并将其用作 git 存储库协作的远程存储 Mac OSX 10 6 6 到 RHEL 3 服务器 SSHFS 版本 2 2 MacFUSE SSHFS 2 2 0 MacFUSE 库版本 F
  • Git:发送电子邮件而不提交

    我有一个项目 我做了更改 并想使用 git send email 功能将它们发送给另一个用户 我发现它可以通过发送补丁来工作 由git format patch每次提交 是否可以只发送diff的 我不想先提交 然后发送补丁 是否有gitfo
  • Composer 用于下载私有 GitHub 存储库

    我无法使用 Composer 下载 github 私人存储库 php composer phar update 我收到以下错误 The https api github com repos company private1 https ap
  • .gitconfig 别名函数调用

    我在 gitconfig 中定义了以下别名 alias teamcity tc tc是我在我的中定义的一个shell函数 bashrc文件 由于某种原因 我收到以下错误 aafghani 03 git workday amirafghani
  • git 别名中的 AWK 语句

    我正在尝试创建一个 git 别名来以特定格式打印日志中的所有拉取请求 但是 我在使用 AWK 删除双空格时遇到问题 这是使用以下命令的 git log 的输出 git log merges grep pull request pretty
  • Ansible bitbucket 克隆存储库配置 ssh 错误

    我之前发布过这个问题 但那里的答案不再有效 总之 当使用 Ansible 配置我的 vagrant box 时 在尝试使用 ssh 克隆我的 bitbucket 私有存储库时 我遇到了一个神秘的错误 该错误指出 权限被拒绝 公钥 然而 如果
  • 使用终端时 Git 推送在总计后卡住了?

    我尝试将一些文件推送到Github 总大小只有22 2M 我不知道为什么它在总行之后卡住了 我读过推送到 Github 时 Git 推送挂起 https stackoverflow com questions 16906161 git pu
  • apt-get 无法在 ubuntu dockerfile 中工作

    我对 docker 相当陌生 正在尝试通过编写自己的镜像来学习 并且目前正在阅读 Docker 的实际操作 ISBN 1633430235 在我自己的代码和书中的示例 第 146 页 中 我想通过 dockerfile 安装 git My
  • 如何将工作树与提交进行比较?

    我在用着 git diff mycommit 用于比较我的工作树mycommit 但它似乎忽略当前索引中不存在的文件 您可以按如下方式重现它 git init echo A gt A txt git add git commit m A g
  • git 日志历史记录图,每次提交一行,彩色,带有日期

    我需要的格式如下 git log decorate graph oneline date order 但我也需要它 包含日期 短 具有相同的颜色 I tried git log decorate graph oneline date ord
  • 使用 scikit-image 在 HSV 中进行颜色旋转

    目的是将纯红色图像转换为色轮的任何色调 A monochrome image is first converted into a RGB red image ex 然后转化为HSV 通过添加一个角度值来修改色调分量 与车轮颜色相匹配 然后将
  • Android 存储库初始化失败

    我想我非常仔细地遵循该网站的说明 http source android com source downloading html http source android com source downloading html 但是当我尝试这
  • 如何让 Aptana Studio 记住 git ssh 密码

    我找不到任何有关如何获得 Aptana Studio 的内置 git 支持来记住执行推 拉操作的 ssh 密码的指南 信息 有人有什么想法吗 Aptana Studio 实际上是内置的 GIT 程序 它将在 Windows 上的 C Use
  • git 排除与忽略

    I use Tower http www git tower com 用于在 Mac 中使用 Git Tower 中的设置具有创建 gitignore 的 忽略 部分 但它还有另一个名为 排除 的部分 似乎可以将排除与 git ls fil
  • git reflog 和 log 有什么区别?

    手册页说 log 显示提交日志 reflog 管理 reflog 信息 reflog 信息到底是什么 它有哪些日志没有的信息 日志看起来更详细 git log显示当前的 HEAD 及其祖先 也就是说 它打印提交 HEAD 指向的提交 然后打

随机推荐