首页 > 解决方案 > Git 忽略 Release 文件夹,但包含特定的 Libraries\Release 文件夹

问题描述

我正在设置我的 gitignore 文件,我想忽略由 Visual Studio 的构建过程创建的 Debug 和 Release 目录。但是我有一个库文件夹,而不是调试和发布的子文件夹 - 我需要包含这些文件夹。

Libraries 下的子文件夹在使用构建配置的项目中被引用,因此它们需要包含 Debug/Release 名称。

我尝试使用!命令否定模式,但这并不成功。

我正在寻找一个 .gitignore 配置,它可以让我专门包含 Libraries/Debug 和 Libraries/Release 文件夹,但忽略所有其他 Debug 和 Release 文件夹。

标签: git

解决方案


要解决您的问题,您需要首先放置更一般的规则,忽略所有 Debug 和 Release 文件夹,并遵循特定规则以不忽略您要跟踪的实例:

Release/*
Debug/*
!/Libraries/Release/*
!/Libraries/Debug/*

重要的是要知道 的内容.gitignore是按顺序处理的,后面的行会覆盖前面指定的内容。所以说忽略所有称为该文件或文件夹的实例,但Release表示不要忽略在回购根目录的特定路径中找到的文件或文件夹。Debug!/Libraries/ReleaseRelease

如果你颠倒了这些行的顺序,它就不会像你想要的那样工作;这是尝试使用!in时经常遇到的问题.gitignore

编辑:添加/*到每一行以仅影响具有给定名称的文件夹,而不影响常规文件。


推荐阅读