首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不同git搜索命令之间的差异

不同git搜索命令之间的差异
EN

Stack Overflow用户
提问于 2017-11-15 12:54:04
回答 1查看 466关注 0票数 5

一个初学者的问题:在git历史中有几种搜索方法。对我来说,不清楚的是,命令之间的区别是:

  1. git log,例如,git log -S 'for what you search' --all在所有分支中搜索字符串,git log -G 'search for regexpr' --all用于搜索regexpr。参见例如这里
  2. git log --grep 'pattern'
  3. git rev-list,例如git rev-list --grep='string' --all
  4. git grep,例如来自这里git grep "string or regexpr" $(git rev-list --all)
  5. gitk,例如gitk file.txt a gui接口
  6. git log --all --full-history -- **/thefile.*这里中搜索历史记录中的文件名。
  7. git diff --word-diff-regex=. > changes.txtgrep -oP '\+[^\+]+\+' changes.txt | tr -d '\+'相结合,以显示基于字符的更改。来自这里。如果更改还没有完成,这甚至是可行的。

我的理解是

  • git log在提交消息中搜索?它似乎是基于rev-list?从医生那里:

显示提交日志。该命令采用适用于git rev-list命令的选项来控制显示的内容和方式,以及适用于git diff-*命令的选项,以控制每个提交引入的更改是如何显示的。

  • git-rev-list似乎是一个更基本的命令,因为它对提交对象(或树对象?)进行操作。从医生那里:

git-rev-list -list提交对象按反向时间顺序排列

  • git grep似乎到处搜索:在文件、块、树和提交对象中?从医生那里:

grep匹配图案的打印线。在工作树中的跟踪文件、在索引文件中注册的blobs或给定树对象中的blobs中查找指定的模式。模式是由换行符分隔的一个或多个搜索表达式的列表。作为搜索表达式的空字符串与所有行匹配。

我使用吉特书作为参考。

EN

回答 1

Stack Overflow用户

发布于 2017-11-15 13:12:32

git log在提交消息中搜索?

是。选项-S/-G搜索提交,以更改出现的次数(即添加或删除)提到的文本。--grep搜索整个提交消息。

git grep似乎到处搜索:在文件、块、树和提交对象中?

不,仅在文件中(即blobs)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47307978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档