user1104799
user1104799

Reputation: 161

How do I ignore all files apart from one or two directories?

I have looked through all previous stackoverflow questions related to this, but found none of the answers there to match what I want to do.

I am developing a component and a template for a content management system. All of my component files are in a subdirectory called 'components/com_rhgallery/', all of my template files are in a subdirectory called 'templates/rhgallery/'

I would like to have a single repository at the root and a single '.gitignore' file. I would prefer not to use git's submodule features as these are overkill for what I need.

Ideally I'd like to create a gitignore file that ignores everything in the project apart from the contents of the directories 'components/com_rhgallery' and 'templates/rhgallery/'

Simplistic solutions such as the following don't work because of the way that git works:

*
!components/com_rhgallery/
!templates/rhgallery/

Linus (himself!) in one posting had suggested force adding files or directories, but this is only appropriate when there are a small number of files to be added and when the directory structure is failry static.

So, my question is, how would you create a single gitignore file to accomplish this relatively simple task of ensuring that only those files in these two directories are tracked?

Upvotes: 3

Views: 150

Answers (1)

JDD
JDD

Reputation: 134

I believe

.gitignore :
*
!/components/com_rhgallery/*
!/templates/rhgallery/*

components/com_rhgallery/.gitignore :
!*
templates/rhgallery/.gitignore :
!*

might solve your problem.

Upvotes: 2

Related Questions