忽略 git log -p 中的文件

2024-04-24

我正在尝试总结我在一个项目上的工作。问题是我不想在输出中包含测试文件git log --patch.

这些文件位于一个名为mtest;但是,该文件夹还包含我确实想展示的测试套件代码。我想排除的测试文件具有扩展名mscx or xml,所以我希望过滤器能够基于此工作。

我看过使“git log”忽略某些路径的更改 https://stackoverflow.com/questions/5685007/making-git-log-ignore-changes-for-certain-paths但这看起来像是排除了修改文件的提交,而不是简单地排除该文件。

有没有办法做到这一点?

我已经尝试过 Jubos 的回答,它似乎有效,但令人惊讶的是,即使打开了过滤器,也出现了 2 个文件。

我用这个小存储库复制了这个:

mkdir test
cd test
git init
echo 'readme' > README
git add .
git commit -m "Initial commit"

mkdir test2
cd test2
echo 't1' > test1.cpp
echo 't2' > test2.xml
git add .
git commit -m "c2"

echo 't3' > test3.cpp
echo 't4' > test4.xml
git add .
git commit -m "c3"

我注意到创建目录时不会过滤文件。 我尝试过以下命令:

git log --patch -- . ":(exclude)**/*.xml"

这导致both要包含的 xml 文件。

git log --patch -- . ":(exclude)*.xml"

这令人惊讶地过滤掉了test4.xml但不是test2.xml.


我不知道您正在使用哪个版本的 Git,但您报告的问题似乎已在 Git 1.9.5 中修复(有关错误修复的更多详细信息,请参阅this https://stackoverflow.com/a/27662758/2541573)。以下命令

git log --patch -- . ":(exclude)*.xml"

在玩具示例中执行您想要的操作:如下所示,所有*.xml根据需要过滤掉文件。

$ mkdir test
$ cd test
$ git init
Initialized empty Git repository in /Users/jubobs/Desktop/test/.git/

$ echo 'readme' > README
$ git add .
$ git commit -m "initial commit"
[master (root-commit) ad6cc73] initial commit
 1 file changed, 1 insertion(+)
 create mode 100644 README

$ mkdir test2
$ cd test2
$ echo 't1' > test1.cpp
$ echo 't2' > test2.xml
$ git add .
$ git commit -m "c2"
[master 8d733a2] c2
 2 files changed, 2 insertions(+)
 create mode 100644 test2/test1.cpp
 create mode 100644 test2/test2.xml

$ echo 't3' > test3.cpp
$ echo 't4' > test4.xml
$ git add .
$ git commit -m "c3"
[master 3e8a3f6] c3
 2 files changed, 2 insertions(+)
 create mode 100644 test2/test3.cpp
 create mode 100644 test2/test4.xml

$ git log --patch -- . ":(exclude)*.xml"
commit 3e8a3f6c627576e8f7d1863b92d4f631ae309417
Author: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Date:   Sat Dec 27 00:19:56 2014 +0100

    c3

diff --git a/test2/test3.cpp b/test2/test3.cpp
new file mode 100644
index 0000000..6d6ea65
--- /dev/null
+++ b/test2/test3.cpp
@@ -0,0 +1 @@
+t3

commit 8d733a27a0e2c9f4c71e7b64742107255035d6cd
Author: xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Date:   Sat Dec 27 00:19:33 2014 +0100

    c2

diff --git a/test2/test1.cpp b/test2/test1.cpp
new file mode 100644
index 0000000..795ea43
--- /dev/null
+++ b/test2/test1.cpp
@@ -0,0 +1 @@
+t1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

忽略 git log -p 中的文件 的相关文章

  • 签入时 git-tf 告诉我“无法锁定”;我该如何修复它?

    我正在使用 git tf 推送到 TFS 项目 有时 当我尝试检查 TFS 中的一个或多个提交时 我会收到如下消息 正在连接到 TFS 签入 MyProject 0 git tf 无法锁定 MyProject 这是什么意思 是什么让我无法锁
  • git clean -ndX 不会删除目录

    With gitignore foo 和一个 git 存储库 quux quux foo quux foo bar quux foo bar baz As foo被忽略 git 假设工作目录是干净的 git status On branch
  • “本地存储库已过时”....我没有分支如何解决这个问题

    当我们将代码推送到远程服务器时 Xcode 显示以下警告 另请参阅随附的屏幕截图 本地存储库已过时 我没有分支或任何其他工作副本 我有同样的问题 我是这样解决的 首先进入终端中的项目目录 git init git add git stash
  • 我如何自动接受 git rebase --interactive 呈现给我的内容?

    我正在使用一个小脚本来修复过去的提交 该脚本假设已暂存对损坏的提交的修复 工作目录是干净的 并且损坏的提交是在命令行上传递的 这是脚本的原始 Python 核心 usr bin env python import os import sys
  • 樱桃选择问题:还应用了之前提交的更改

    在我的项目中 我几个月前发布了一个版本 在该版本发布之后 我在 master 分支上做了很多更改 如果我遇到上一个版本中存在的一些错误 我会在主分支上修复它们 然后将它们挑选到我在上一个版本中创建的分支 然后我可以提供一个仅包含错误修复的新
  • 将 git 与 svn 一起使用的好习惯

    Subversion 几年前就很流行 现在 git 也开始流行 越来越多的人想用 git 取代 Subversion 问题是很多项目都是基于 Subversion 的 所以问题是如何将 git 与 Subversion 一起使用 不要完全取
  • 将 WordPress 保持在版本控制中 - 主题的单独存储库

    我的 WordPress 项目位于 Git 下 并将 WordPress 作为子模块 我想将主题开发保留在单独的子模块中 但在当前设置内 将主题设置为子模块时遇到一些困难 这是我的文件系统 git master repo index php
  • 图表贡献者为空

    我在 github 上有几个项目 但其中一些项目的贡献者图是空的 即使我的 gitconfig 设置了名称和电子邮件 https github com jlengrand batchWaterMarking graphs contribut
  • 如何使用 jenkins shell 创建新的 git 分支

    我想达到以下目标 在某些詹金斯工作中 从 dev branch 创建一个新分支 对新创建的分支 new branch 进行一些更改 将新创建的分支推送到 git repo 我在詹金斯中执行了以下步骤 我已经在 源代码管理 部分配置了我的 g
  • 如何列出当前正在验证的拉取请求中更改的所有文件(在 VSTS 中)?

    我有一个 PR 验证版本 我想列出 PR 中更改的所有文件以及状态 源在每个构建上同步 因此 在合并 PR 更改之前 源位于修订版A 通常origin master 让我将 PR 合并提交指定为B 我当前的实现调用git diff tree
  • 不同GIT版本的GIT合并结果不同

    在不同的 GIT 版本上运行 merge 命令我们得到不同的结果 命令是 git merge no ff origin master codeline Results 版本2 1 4 gt 合并成功 版本1 7 1 gt 同一提交上的同一合
  • 如何解决 npm install 中的身份验证错误?

    在我的 package json 中 我有一个名为 somerepo git 的私人存储库 现在我通过 maven 在 buildserver bamboo 上运行 npm install 并收到此错误 ERROR npm ERR Comm
  • Jenkins 多分支管道 - 在分支中配置属性?

    我们已经使用 Jenkins 多分支管道插件成功设置了构建管道 该插件在大多数情况下都运行良好 但是我们遇到了一个困扰我们的问题 Jenkinsfile包含一组属性 这些属性也显示在 UI 中 但如何为各个分支设置默认值 这就是我们的属性定
  • 从历史记录中删除不需要的文件,包括带有过滤分支的所有引用

    我最近克隆了一个 SVN 存储库 其中曾经有一些二进制文件 但不再需要了 不幸的是 我已经将它和包含的二进制文件推送到了 Github 我现在想使用 git filter branch 删除它们 但在标签和分支方面我遇到了一些问题 基本上
  • 我可以在 git 中使用单个命令推送到多个存储库吗?

    基本上我想做一些类似的事情git push mybranch to repo1 repo2 repo3 现在我只是多次输入push 如果我急于完成push 我只需将它们全部发送到后台git push repo1 git push repo2
  • Git推送更新远程服务器信息失败

    当我尝试将新分支推送到远程源时 出现以下错误 我能够在现有分支上推送提交 并且现有分支上没有问题 git push u origin master1 Fetching remote heads refs refs tags refs hea
  • 提交 ID 从哪里来?

    我只是对此很好奇 提交 ID 不能是随机的 因为它们需要是唯一的 不过 它们似乎是随机的 这让我想知道 为什么它们不只是连续的数字 我的意思是 它们只需要在存储库中是唯一的 对吧 或者我在这里错了 Thanks Git 提交 ID 是 SH
  • Github README.md 和 readme.md - 如何删除其中一个?

    不知何故 我最终在 github 上有了 README md 和 readme md 现在这两者相互影响 所以我的 GitHub app 完全混乱了 Github网站没有任何文件删除功能 如何删除这些文件之一 只需删除其中一个文件并提交删除
  • 如何使用 BFG 删除受保护的提交

    使用 BFG 清理存储库时 https rtyley github io bfg repo cleaner https rtyley github io bfg repo cleaner 遇到以下情况 Protected commits T
  • git stash 和编辑帅哥

    我完全喜欢git add p and git stash但我偶尔会遇到以下问题 该问题是通过以下命令序列重现的 git add p my file 然后我手动编辑大块 using e 因为 git 建议的分割不适合我 git stash k

随机推荐

  • 我的 Rails 路由应该是什么样子才能与 pushState Ember.js 路由一起使用?

    简而言之 当构建 Ember js 应用程序以持久保存到 Rails 应用程序时 我应该如何处理 Rails 路由 视图 我想我只需要 Rails 来渲染 application html erb 布局 以便 Ember js 应用程序初始
  • 如何修复 Chrome 扩展程序“未捕获的引用错误:文档未定义”错误? [复制]

    这个问题在这里已经有答案了 我正在创建一个扩展 我希望它能够在任何网站上找到特定的单词并突出显示它们 但是 在加载扩展程序后 我立即收到一条错误消息 有谁知道如何解决这一问题 我的代码如下 背景 js chrome runtime onIn
  • ffmpeg drawtext如何设置从右到左的方向

    i write arabic text to videos and it works fine but the issue is that the arabic language is written from right to left
  • 使用 MinMax 和 Alpha-Beta 剪枝找到最佳移动

    我正在为游戏开发 AI 我想使用MinMax算法与Alpha Beta 修剪 我对它的工作原理有一个粗略的了解 但我仍然无法从头开始编写代码 所以我花了两天的时间在网上寻找某种伪代码 我的问题是 我在网上找到的每个伪代码似乎都是基于寻找最佳
  • 属于主键?

    我有一个像这样的数据库布局 Users id name etc Lead id initials etc 基本上一个用户有很多线索 这initials字段映射到name用户表中的字段 我对用户设置有一个完美的关系 has many lead
  • 在编译时将多个文件中的变量收集到单个连续的内存块中

    我想在多个 c 文件中定义 并初始化 结构体的多个实例 但我希望它们在编译时收集到一个连续的数组中 我一直在研究使用自定义部分并使用该部分的开始和结束地址作为结构数组的开始和结束 但我还没有完全弄清楚细节 而且我不想编写自定义部分链接器脚本
  • vim:无法加载库 libpython

    我不让 vim 与 python 支持一起工作 我使用以下配置编译 vim 7 4 972 configure enable shared with features huge enable multibyte enable cscope
  • 如何使用 mediaelement.js 获取 HTML5 音频播放列表?

    我尝试在 mediaelement js 中搜索音频播放列表的示例 但我没有找到 mediaelement js 支持音频播放列表吗 如果是这样 请支持我的示例代码或链接 非常感谢 我设法获得了一个超级基本 阅读 hacky 的播放列表演示
  • WAMP服务器将MySQL切换为MariaDB

    如何在WAMP 3 1 0中将数据库从MySQL切换到MariaDB 我正在寻找它 但我找不到它 从您显示的图像来看 MySQL 和 MariaDB 似乎都已经在运行 注意 这有点占用内存 简单测试看看 MySQL 和 MariaDB 是否
  • python服务器中进程之间共享列表

    我有简单的UDP服务器 它适用于多重处理 我想创建一个列表 其中包含有关所有客户的信息 I use Manager 但我不明白 如何在列表中附加信息 我需要传输 Manager 的对象来处理 但是如何 我使用新属性的方法不起作用 impor
  • 将图像插入 JTable

    我在将图像插入 JTable 时遇到问题 我搜索了一下 发现有两种方法 您可以覆盖表模型的 getcolumnclass 或创建自定义 tablecellrender 我选择使用以下代码制作自己的单元格渲染器 public class My
  • 从 Helm stable/cert-manager 升级到 jetstack/cert-manager

    我们有一个生产 AKS 集群 其中包含stable cert manager安装 helm 图表以允许使用 Let s Encrypt 证书 当前安装的版本是cert manager v0 6 0 in the kube system命名空
  • Laravel:BadMethodCallException 方法 [find] 不存在

    当尝试使用模型对象 User 从数据库中提取一些值时 出现以下错误 BadMethodCallException Method find does not exist 这是我的文件 模范用户
  • 错误 NU5049 不支持 SDK 样式项目的 pack 命令

    我的解决方案包含 Framework 4 8 项目 Net Standard 2 1 项目和 net6 项目 它已经运行了几周 没有出现任何问题 今天构建管道开始失败并出现错误 错误 nuget 命令失败 退出代码 1 和错误 错误 NU5
  • 解析iOS SDK:从Xcode调用云函数

    Scenario我想在我的应用程序中使用这两个云函数 他们检查用户的在线状态 我想为每个用户设置一个布尔键 isOnline 如果用户在线 则设置为 是 如果用户不在线 则设置为 否 var moment require moment Pa
  • 使用 jQuery 获取类中不同类型的输入

    假设我在 JavaScript 中有一个 jquery 函数 并且到目前为止我有这段代码 效果很好 jQuery div class someClass input type text each function some code 在上面
  • 如何在 C# 中使用随机数?

    我正在用 C 和 XNA 开发 Pong 我想使用一个随机数 在一定范围内 来确定诸如球是否直线反弹或以一定角度反弹以及球击中球拍时移动的速度之类的事情 我想知道如何实施 Use the Random http msdn microsoft
  • 为什么我收到 PayPal Android Native Checkout SDK - 无效的 client_id 或 redirect_uri

    我正在使用新的 Android Native Checkout SDK 和 Kotlin 并且我一直遵循文档中的每一步 但这种情况不断发生 我不知道为什么 我也在尝试PayPal Android Native Checkout SDK 无效
  • 为什么调用指定命名空间的函数会更慢?

    我认为指定我给出的命名空间R要做的工作更少 但我可能是错的 library microbenchmark gt microbenchmark unique default c 1 1 10 base unique default c 1 1
  • 忽略 git log -p 中的文件

    我正在尝试总结我在一个项目上的工作 问题是我不想在输出中包含测试文件git log patch 这些文件位于一个名为mtest 但是 该文件夹还包含我确实想展示的测试套件代码 我想排除的测试文件具有扩展名mscx or xml 所以我希望过