A9S*_*9S6 3 git pattern-matching gitignore
我有一个Git存储库,在根目录中包含一个Libs目录.此目录包含我想要包含在存储库中并推送到主仓库的所有已编译的.lib文件.Libs目录的结构是:
自由人
......-- | x64
........-- | 发布
........-- | 调试
问题是我无法使Git包含Release和Debug文件夹中的LIB文件.我认为它是因为gitignore排除了Release和Debug文件夹:
# Build results
[Dd]ebug/
[Rr]elease/
x64/
build/
[Bb]in/
[Oo]bj/
Run Code Online (Sandbox Code Playgroud)
我尝试了什么:
!/Libs/*/*.lib
!/Libs/x64/Release/*
Run Code Online (Sandbox Code Playgroud)
你需要使用:
git add --force Libs
Run Code Online (Sandbox Code Playgroud)
为了添加它们,尽管.gitignore.
您可以随时查看哪些.gitignore以及哪些规则.gitignore阻止您考虑使用以下特定文件夹:
git check-ignore -v /path/to/an/element
Run Code Online (Sandbox Code Playgroud)
修改您的.gitignore到不忽略特定的子文件夹,可以考虑" 的.gitignore排除文件夹,但包括具体的子文件夹 ",特别是:
如果你排除
folder/,那么它下面的所有东西将永远被排除(即使一些后来的否定排除模式("unignore")可能与下面的东西相匹配folder/).(*)
(*:除非在git 2中满足某些条件.?,见下文)
例如,在你的情况下尝试(git 1.8.2+):
Libs/**/*
!Libs/x64/Release/
Run Code Online (Sandbox Code Playgroud)
请注意,使用git 2.9.x/2.10(2016年中期?),如果重新包含的路径中没有通配符,则可以重新包含该文件(如果排除该文件的父目录).
NguyễnTháiNgọcDuy(pclouds)正在尝试添加此功能:
这意味着,使用git 2.9+,这可能有效:
/Libs
!/Libs/x64/Release
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3733 次 |
| 最近记录: |