Fletcher Moore
Fletcher Moore

Reputation: 13814

How do you gitignore everything except a directory?

I am trying to sync my desktop and laptop using a cron'd git. It works beautifully on a single directory. However I want to sync multiple config files scattered about and some other things. To do this decided to turn my home folder into a git directory and ignore everything except for a few select files and directories.

$ cat .gitignore
*
# test is a directory
!test

Does not work. Looking at another stackoverflow question, I found */ and used it instead of *. That almost worked as I wanted it to, but then all of the random single hidden files I have scattered about my home directory showed up.

Upvotes: 0

Views: 1706

Answers (4)

Fabien
Fabien

Reputation: 787

What works for me:

# Ignore every directory
/*
# Except this one
!/test

Or

# Ignore every file
*
# Except these ones
!test
!test/*
!test/*/*

Upvotes: 2

yfeldblum
yfeldblum

Reputation: 65455

$ cat .gitignore
**/*
*
# test is a directory
!test

Upvotes: 0

baudtack
baudtack

Reputation: 30391

From my git ignore in my home directory.

*

Then you have to git add -f stuff you want to commit. Least that is how I do it for my configs.

Upvotes: 2

riwalk
riwalk

Reputation: 14233

Try:

!test/*

instead. I'm not sure if this will work (wild guess), but it is worth a try.

Upvotes: 0

Related Questions