gitignore 除了子子文件夹中的文件之外的所有文件

2024-01-04

我已经尝试了 .gitignore 的多种组合,但没有一个能满足我的需要。我有这棵树:

jobs/
jobs/projecta/config.xml
jobs/projecta/garbage
jobs/projecta/more/garbage
jobs/projectb/config.xml
jobs/projectb/garbage
jobs/projectb/more/garbage

垃圾是指任何其他文件。我只想提交 config.xml 文件,并忽略 jobs/ 中除它们之外的所有内容。所以我尝试:

/jobs/*
!/jobs/*/config.xml

这样,作业内的所有内容都会被忽略,包括 config.xml 文件。如果顺序相反,也会发生同样的情况。因此,我可以强制添加所有配置文件,并且将跟踪对它们的更改,但如果我在作业中添加新文件夹,它的 config.xml 将不会显示为未跟踪的文件,这样人们就可能忘记添加它们。

我已经尝试过 **,但我得到了同样的结果。

有任何想法吗? 谢谢!


The 我在评论中提到的问题 https://stackoverflow.com/questions/5533050/gitignore-exclude-folder-but-include-specific-subfolder实际上回答了这个场景;关键部分如下:

如果排除某个目录,Git 将永远不会查看该目录的内容。

这只是对这段代码的改写吉蒂诺尔 http://git-scm.com/docs/gitignore文档,重点是我的。

如果排除某个文件的父目录,则无法重新包含该文件。出于性能原因,Git 不会列出排除的目录,因此所包含文件上的任何模式都无效,无论它们是在哪里定义的。


你的模式/jobs/*将忽略中的每个文件和文件夹jobs。这意味着 git 甚至不会在这个被忽略的文件夹中查找以查看您的!/jobs/*/config.xml模式匹配其中的文件。

反过来你必须明确地unignore子文件夹,然后reignore内容;之后你可以再次unignore your config.xml文件。这可能看起来很愚蠢,但这就是 git 处理忽略的方式。

# Ignore everything in /jobs
/jobs/*
# Reinclude all folders in /jobs
!/jobs/*/
# Ignore everything in the subfolders of /jobs
/jobs/*/*
# Reinclude config.xml files in the first-level subfolders of /jobs
!/jobs/*/config.xml

这种模式会忽略一切,但config.xml的第一级子文件夹中的文件jobs.

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

gitignore 除了子子文件夹中的文件之外的所有文件 的相关文章

  • 为什么cherry-pick总是会导致合并冲突?

    我正在从发布分支中挑选特定的提交到我的本地工作副本中 每次我从发布分支中挑选一个提交时 我都会遇到必须解决的合并冲突 即使更改看起来微不足道 例如 const char kApplicationVersion Develop const c
  • 有没有办法缓存 https 凭据以推送提交?

    我最近转而将我的存储库同步到 GitHub 上的 https 由于防火墙问题 并且每次都要求输入密码 有没有办法缓存凭据 而不是每次都进行身份验证git push 自 Git 1 7 9 2012 年发布 以来 Git 中有一个巧妙的机制可
  • 如何在 Windows 上向 git 存储库添加符号链接?

    我使用 GitHub 的电子环境编译 OS X 的二进制文件 并希望将输出添加到 git 存储库 我试过 git add error readlink sulu app Contents Frameworks Electron Framew
  • 在 git repo 中查找超过 x MB 且 HEAD 中不存在的文件

    我有一个 Git 存储库 用于存储随机的内容 主要是随机脚本 文本文件 我设计的网站等 随着时间的推移 我删除了一些大型二进制文件 通常为 1 5MB 这些文件会增加存储库的大小 而我在修订历史记录中不需要这些文件 基本上我希望能够做到 m
  • vscode通过SSH连接gitlab的问题

    我在尝试通过 SSH 连接到 GitLab 远程存储库时遇到问题 这里是迄今为止完成的步骤 成功生成 SSH 密钥 管理人员将密钥添加到存储库中 因此当我访问 GitLab 网站时 我可以提交和发布分支 我无法从 VSCODE 发布分支并收
  • Git 不断提示我输入密码

    我已经使用 Git 一段时间了 但是不断要求输入密码开始让我感到厌烦 我使用的是 Mac OS X 和 GitHub 并且按照 GitHub 的说明设置了 Git 和我的 SSH 密钥设置 Git 页面 http help github c
  • 运行“git apply”时出错

    当我尝试时 您能否告诉我如何解决 补丁不适用 错误 git 应用补丁 git apply 0001 my patch error patch failed test xml 114 error text xml patch does not
  • Git:如何变基到特定提交?

    我想变基到特定的提交 而不是另一个分支的 HEAD A B C master D topic to A B C master D topic 代替 A B C master D topic 我怎样才能做到这一点 您可以通过在您喜欢的提交上创
  • git - 更新 fork 的 master 并将我的分支重新建立到它之上?

    我分叉了一个 github 项目 然后将其克隆到本地 然后我在新分支中做了一些更改my github the project repo 然后我添加并提交了更改 并推送到我的 github 存储库并提交了拉取请求 所有者已收到我的请求 并希望
  • 如何从 android.googlesource.com 或 github.com 下载单个目录?

    我想下载 https android googlesource com platform frameworks base git master tools aapt https android googlesource com platfo
  • git pull,忽略深度,如何不拉取整个历史记录?

    我们有一个巨大的多 GB git 存储库 主要是二进制对象 克隆需要几天时间 实际的主分支 没有历史记录 只有大约 20MB 所以我想 深度为 1 的 git 克隆就是解决办法 然而 现在我需要将某人的更新拉到主服务器 我们没有分支 当我拉
  • 如何将更改移出主分支

    基本问题 但这一直发生在我身上 进行更改working branch 切换到master git merge working branch git push cap deploy 到舞台 泡一杯新茶 然后我回来思考其他事情并开始做出一些改变
  • 如何正确使用“mvn release:prepare”?

    我尝试了这个命令 用dryrun在我的 Maven 项目上进行测试 mvn release clean release prepare DdryRun true DgenerateBackupPoms false Dtag solocal
  • 如何合并两个连续的 git 存储库

    我有一个相当独特的情况 我有一个名为 Project1 的存储库 我在其中工作了一些时间 几个月 一年后 我创建了存储库 Project1 Again 从 Project1 停止的地方开始 现在 我希望修订历史记录是连续的 因此我希望它们合
  • .gitconfig 别名函数调用

    我在 gitconfig 中定义了以下别名 alias teamcity tc tc是我在我的中定义的一个shell函数 bashrc文件 由于某种原因 我收到以下错误 aafghani 03 git workday amirafghani
  • 如何将工作树与提交进行比较?

    我在用着 git diff mycommit 用于比较我的工作树mycommit 但它似乎忽略当前索引中不存在的文件 您可以按如下方式重现它 git init echo A gt A txt git add git commit m A g
  • GIT:以下未跟踪的工作树文件将被签出覆盖

    我有两个分支 一个称为 master 另一个称为 dev 我目前位于 master 分支 我想转到 dev 分支将文件移动到开发服务器 但是当我执行 git checkout dev 我收到消息 以下未跟踪的工作树文件将被覆盖 查看 pag
  • 当 .gitattributes 中的 EOL 设置为 CRLF 时,Git diff 认为行结尾为 LF

    当我恢复对带有 Windows 行结尾的文件的更改并且 gitattributes 将 EOL 定义为 CRLF 时 git 认为行结尾已更改为 LR 即使十六进制编辑器显示 CRLF 仅当 gitattributes 定义 EOL 字符时
  • Git 将一个分支合并到所有其他分支中

    我知道这个问题已经在这里被问过 https stackoverflow com questions 2329716 merging changes from master into all branches using git https
  • 当当前分支上有未提交的更改时签出另一个分支

    大多数时候 当我尝试签出另一个现有分支时 如果我在当前分支上有一些未提交的更改 Git 会不允许我这样做 所以我必须首先提交或隐藏这些更改 然而 有时 Git 确实允许我在不提交或存储这些更改的情况下签出另一个分支 并且它会将这些更改携带到

随机推荐

  • 如何将 NSUUID 表示为字符串?

    我怎样才能转换NSUUID to NSString NSString url self mysql process ESTIMOTE PROXIMITY UUID NSString mysql process NSUUID beacon i
  • 矩阵乘法的分而治之

    我无法让分而治之的矩阵乘法发挥作用 据我了解 您将大小为 nxn 的矩阵分成象限 每个象限为 n 2 然后执行以下操作 C11 A11 B11 A12 B21 C12 A11 B12 A12 B22 C21 A21 B11 A22 B21
  • 使用 C 语言堆栈的计算器

    我正在尝试用 c 创建一个计算器 它可以优先计算并获得正确的结果 例如 5 5 3 3 gt 9 1 2 3 gt 9 我下面的代码可以计算这些示例 但对于这样的事情 2 5 2 5 我的程序给出了错误的答案 我用的是2个堆栈 一种用于操作
  • Laravel API 注册用户 - 检查重复电子邮件

    我正在使用 Laravel 5 5 API 路线routes api php像这样注册新用户 Route post users function Request request user new User if Input get name
  • 未设置对象变量或 With 块变量(错误 91)

    我有以下代码 Sub AddSources Dim pubPage As Page Dim pubShape As Shape Dim hprlink As Hyperlink Dim origAddress As String Dim e
  • mac osx:无法使用 virtualenv

    我正在尝试使用 virtualenv 创建一个环境 virtualenv test New python executable in test bin python Error Errno 2 No such file or directo
  • jquery从外部页面循环链接到特定幻灯片?

    仔细研究了所有其他问题 但我无法弄清楚这一点 我有一个主页 其中包含我使用 jquery 循环插件的另一个页面的某些幻灯片 我需要做的是将主页上的链接直接链接到不是组中第一张幻灯片的幻灯片 没什么那么复杂 我的主页上有一个这样的链接 a h
  • PHP preg_replace 的 JavaScript 等效项

    我一直在寻找 PHP 的 js 等效项preg replace功能和我到目前为止发现的只是string replace 但是我不知道如何将我的正则表达式转换为 JavaScript 这是我的 PHP 代码 preg replace str
  • ios 7 模拟器不会为针对 ios 6.1 sdk 编译的应用程序提供回退用户界面

    我们的 ios6 1 sdk 编译的应用程序在 ios 6 1 iPhone 4 4s 和 5 设备上运行良好 当在 ios7 iphone 5s 上运行该应用程序时 用户界面仍然看起来像 ios 6 黑色按钮等 但我们对大部分内容都很好
  • 找不到协议socket.getprotobyname

    我正在尝试连接到rabbitMQ服务器 但它在与a的连接时始终失败socket error protocol not found错误 In 1 import pika In 2 pika BlockingConnection pika Co
  • Python PIL 错误地解码 TIFF 颜色(使用不正确的色彩空间)?

    当我使用PIL 1 1 7加载 TIFF 图像时 颜色空间似乎错误 这是怎么回事 The tiff是使用创建的convert test jpg test tiff 但其他 tiff 文件似乎也会发生 可以在以下位置找到 http hul w
  • 以编程方式对 JTable 进行排序

    有没有办法以编程方式对 JTable 进行排序 我让 JTable 的排序工作 使用 setRowSorter 这样当用户按下任何列时 表就会被排序 我知道 SWingX JXTable 可能会工作 但我不想经历这个麻烦 因为其他一切现在都
  • Android 通知有一个彩色图标,而不是变成白色

    我的 Android 应用使用 Firebase Cloud Messaging 进行通知 当收到通知时 该图标不会像其他图标一样变成白色 我在用着targetSdkVersion 23 我的清单中有这个
  • 正则表达式: ?: 符号(问号和冒号符号)[重复]

    这个问题在这里已经有答案了 我有以下 Java 正则表达式 它不是我编写的 我正在尝试修改 class map s match all s match any s x21 x7e 1 40 它类似于this one https stacko
  • 如何配置 php.ini 以使用 gmail 作为邮件服务器

    I want to learn yii as my first framework And I m trying to make the contact form work But I got this error 我已经配置了 php i
  • 通知通过旧意图附加

    我正在通过以下代码在 BroadcastReceiver 内创建通知 String ns Context NOTIFICATION SERVICE NotificationManager mNotificationManager Notif
  • 像导航抽屉一样实现 Gmail 平板电脑

    我正在研究 Gmail 应用程序的平板电脑设计 在那里面Navigation Drawer实施与其他不同 我已附上图片供您参考 而且当我展开抽屉时 它应该像正常的导航抽屉行为一样发生 我想以同样的方式实施 我正在寻找 但我只找到了这个lin
  • C++ STL 分配器与 new 运算符

    根据C Primer第4版 第755页 有一条注释说 现代 C 程序通常应该使用分配器类 来分配内存 它更安全 更灵活 我不太明白这个说法 到目前为止 我读过的所有材料都教授使用new在C 中分配内存 书中展示了向量类如何使用分配器的示例
  • 创建一个 PHP 文件来下载某个站点的所有链接

    我最近在我的 Firefox 中安装了附加组件 DownThemAll 当我看到它下载大量的 pk3 文件 开源第一人称射击游戏的地图文件 时 我想知道我是否可以使用 PHP 做同样的事情 这就是我的想法 foreach glob http
  • gitignore 除了子子文件夹中的文件之外的所有文件

    我已经尝试了 gitignore 的多种组合 但没有一个能满足我的需要 我有这棵树 jobs jobs projecta config xml jobs projecta garbage jobs projecta more garbage