I've recently started using Git and am having trouble with just one thing. How can I track directories without tracking their contents?
For example the site I'm working on allows uploads. I want to track the uploads directory so that it is created when branching, etc. but obviously not the files within it (test files whilst in develop branch or the real files in master).
In my .gitignore I have the following:
Git doesn't track directories, it tracks files, so to acheive this you need to track at least one file. So assuming your
.gitignore file looks something like this:
You can do this:
$ touch upload/.placeholder $ git add -f upload/.placeholder
If you forget the
-f you'll see:
$ git add upload/.placeholder The following paths are ignored by one of your .gitignore files: upload Use -f if you really want to add them. fatal: no files added
Then when you do
git status you'll see:
# On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached ..." to unstage) # # new file: upload/.placeholder #
Obviously you can then do:
$ touch upload/images/.placeholder $ git add -f upload/images/.placeholder