I have a Git repository that contains a Libs directory in the root. This directory contains all the compiled .lib files that I want to include in the repository and push to main repo. The structure of Libs directory is:
Libs
...--| x64
........--| Release
........--| Debug
The problem is that I am unable to make Git include LIB files inside Release and Debug folders. I think its because Release and Debug folders are excluded by gitignore:
# Build results
[Dd]ebug/
[Rr]elease/
x64/
build/
[Bb]in/
[Oo]bj/
What I tried:
!/Libs/*/*.lib
!/Libs/x64/Release/*
You would need to use:
git add --force Libs
In order to add them in spite of the .gitignore.
You can check at any time which .gitignore and which rules of the .gitignore
is preventing you to consider a particular folder with:
git check-ignore -v /path/to/an/element
For modifying your .gitignore
to not ignore a particular sub-folder, consider ".gitignore exclude folder but include specific sub-folder", especially:
If you exclude
folder/
, then everything under it will always be excluded (even if some later negative exclusion pattern (“unignore”) might match something underfolder/
). (*
)
(*
: unless certain conditions are met in git 2.?, see below)
For instance, in your case try (git 1.8.2+):
Libs/**/*
!Libs/x64/Release/
Note that with git 2.9.x/2.10 (mid 2016?), it might be possible to re-include a file if a parent directory of that file is excluded if there is no wildcard in the path re-included.
Nguyễn Thái Ngọc Duy (pclouds
) is trying to add this feature:
That means, with git 2.9+, this could have worked:
/Libs
!/Libs/x64/Release
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With