2013/12/7 Martin Langhoff <[email protected]>:
> Tested with git 1.7.12.4 (Apple Git-37) and git 1.8.3.1 on F20.
>
> $ mkdir foo
> $ cd foo
> $ git init
> Initialized empty Git repository in /tmp/foo/.git/
> $ mkdir -p modules/boring
> $ mkdir -p modules/interesting
> $ touch modules/boring/lib.c
> $ touch modules/interesting/other.c
> $ touch modules/interesting/lib.c
> $ git add modules/interesting/lib.c
> $ git status
> # On branch master
> #
> # Initial commit
> #
> # Changes to be committed:
> # (use "git rm --cached <file>..." to unstage)
> #
> # new file: modules/interesting/lib.c
> #
> # Untracked files:
> # (use "git add <file>..." to include in what will be committed)
> #
> # modules/boring/
> # modules/interesting/other.c
>
> $ echo '/modules/' > .gitignore
> $ echo '!/modules/interesting/' >> .gitignore
>
I happened to write a software "Gistore" to backup arbitrary files and
directories using Git, and it will save interesting things in .git/info/exclude.
For your case, you could write .gitignore as:
/modules/*
!/modules/interesting
!/modules/interesting/**
You can find my code in Gistore to generate proper .gitignore here:
https://github.com/jiangxin/gistore/blob/master/lib/gistore/repo.rb#L228
Because I will ignore all files except what I want, the ignore file would be:
*
!/modules
!/modules/interesting
!/modules/interesting/**
--
Jiang Xin
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html