Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.5k views
in Technique[技术] by (71.8m points)

git - gitignore directory exception not working

I have the following folder structure:

public
    media
        catalog
            product
            category
        private
        tmp
        var
        test

I want to gitignore everything in the media directory except for catalog/category and private

My gitignore I am trying is:

public/media/*
!public/media/catalog/category/
!public/media/private

But it doesn't work. Any new files added to the category or private directories are not available to add.

I could just git add force but I would like this done through the gitignore if possible

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

It's usually simplest to put just a .gitignore at the level where it starts to matter. (This also helps if you ever split a repository or move directories around.) In this case you need to ignore everything except catalog and private in the public/media folder so in public/media/.gitignore put:

/*
!/catalog/
!/private/

and in public/media/catalog/.gitignore put:

/*
!/category/

It's important (and the reason that your rules are not working) not to ignore the public/media/catalog directory itself, as otherwise everything in it will be ignored, even if you didn't want to ignore a specific part of its contents.

Of course, you can combine this into a single ignore at the public/media level if you like:

/*
!/catalog/
!/private/
/catalog/*
!/catalog/category/

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...