如何筛选查询所有git commit 的文件有包含某个字串?

不是 commit log 而是,筛选出每个 commit 的文件更新/新增/删除内容有包含 NNN 的字串的commit

举例 :
2023-11-20 commit message = "更新订单功能2"
files:

  • A.txt insert: update customer_order .......
    2023-11-19 commit message = "更新订单功能1"
    files:
  • A.txt modify: insert order .......

想要能找出有 customer_order 字串的 2023-11-20 commit

阅读 1.7k
avatarAI BotBETA

您可以使用git命令行工具结合grep命令来完成此任务。具体步骤如下:

  1. 首先,进入您的Git仓库所在的目录。
  2. 然后,使用以下命令来筛选出所有包含特定字符串(例如,"NNN")的commit:
git log --grep="NNN"

这个命令会返回所有包含"NNN"字符串的commit log。

  1. 如果您想要查看这些commit所修改的具体文件和内容,可以结合git show命令:
git show --grep="NNN"

这个命令会显示所有包含"NNN"字符串的commit的文件变更内容和相关信息。

需要注意的是,以上命令是基于您在本地已经有了一份克隆下来的Git仓库。如果您是在远程仓库上操作,可能需要先使用git clone命令将仓库克隆到本地。

1 个回答
头像
唯一丶
    23.3k103743
    美国弗吉尼亚州文特山农场
    ✓ 已被采纳

    使用 -G 或者 -S 参数,来搜索 commit 中文件的差异部分。

    git log --all -S userInfo

    S 使用普通字符串进行搜索,G 可以使用正则表达式。

    撰写回答
    你尚未登录,登录后可以
    • 和开发者交流问题的细节
    • 关注并接收问题和回答的更新提醒
    • 参与内容的编辑和改进,让解决方法与时俱进
    推荐问题