我的 GitHub 存储库的 .gitignore 文件中有一条规则,用于忽略开发过程中出现的所有 .jar 文件。
现在,我正在执行一个升级任务,其中有一些 Jar 文件需要进入远程存储库。我可以从 .gitignore 文件中删除该规则,但我必须在 100 个以上之前被忽略的 Jars 中挑选每个相关的 jar 文件。
我正在做的工作被隔离到存储库上的几个文件夹和子文件夹中。
必须有一些更简单的方法来实现这个目标。谷歌搜索没有帮助,因为我什至不知道我应该搜索什么。
从这个问题的答案https://stackoverflow.com/a/60558023/14310825,我试图尝试覆盖该规则。例如,如果我的项目目录如下所示。
bootstrap/
├── .git/
├── .github/
├── .gitignore
├── css/
│ ├── bootstrap.css
│ ├── bootstrap.min.css
│ ├── bootstrap-theme.css
| ├── Extras/
| | ├── iDontWantToIgnoreThis.css
| | └── anotherFileIDoNotWantToGetIgnored.css
│ └── bootstrap-theme.min.css
├── js/
│ ├── bootstrap.js
| ├── Extras/
| | ├── iDonotWantToIgnoreThis.js
| | └── anotherSubFolder /
| | └── iDontWannaIgnoreThisFileAsWell.js
│ └── bootstrap.min.js
└── fonts/
├── glyphicons-halflings-regular.eot
├── glyphicons-halflings-regular.svg
├── glyphicons-halflings-regular.ttf
└── glyphicons-halflings-regular.woff
我的 .gitignore 看起来像这样:
# Ignore java script
*.js
# Ignore Css
*.css
我不想忽略任何 js 或 css 文件:
bootstrap/css/Extras && bootstrap/js/Extras
我在 gitignore 上添加这两行的行为
!bootstrap/css/Extras/*.css
!bootstrap/js/Extras/**/*.js
Git 仍然忽略这些文件。
请注意,我正在开发一个 Java-Springboot 项目,上面是我面临的问题和我的期望的示例。我不想忽略我的存储库某些目录中的任何 .jar 文件
有趣的是,问题的文本提到了
.jar
文件,但示例仅涵盖 .js
和 .css
文件。
您应该能够在想要允许跟踪
文件的目录中创建.gitignore
文件。该文件应包含.jar
以允许跟踪目录(及其子目录)中的任何!*.jar
文件。.jar
的 Git 手册手册页中阅读有关 .gitignore 文件如何工作的信息。如果目录gitignore
中存在包含.gitignore
的bootstrap/js/Extras
文件,Git 不应忽略!*.js
或其子目录中的.js
文件。Extras
“忽略”行的问题在于您在开头包含了
:bootstrap/
!bootstrap/css/Extras/*.css !bootstrap/js/Extras/**/*.js
但是没有子目录
这些行适用。您需要将这些行替换为:bootstrap
!css/Extras/**/*.css
对于
文件和.js
文件也是如此。您不需要这两行,因为.jar
符号在链接页面上明确记录为匹配 零 或更多目录级别:/**/
- 斜杠后跟两个连续的星号,然后斜杠匹配零个或多个目录。例如,“a/**/b”匹配“a/b”、“a/x/b”、“a/x/y/b”等。
就我个人而言,我会将规则放在较低级别的
文件中,正如我之前指出的那样。然而,我可以看到将所有规则都放在顶层的情况。我认为这更难管理,但这可能是一个项目范围的决定,需要更多的努力才能撤销,而不是将正确的规则添加到顶级.gitignore
文件中。.gitignore