Sometimes in Git, we want to preserve a directory for use within a repository, but keep it empty of files. There are many reasons why you'd want to do this, but perhaps either the folder is used to store files the person cloning the repository needs to create, or a script creates custom files to put into that folder.
If we want to create a blank directory, we can do that easily, but it won't be pushed when we use git push
to push to our remote. As such we need to do something slightly different.
Creating a blank directory in a Git Repository
The easiest way to do this is by creating a .gitignore
file within the directory you want to maintain.
- index.html
- myRepository <-- Empty directory
- myCss
--- style.css
--- main.css
We want to push myRepository
to our git repository. To do that, create a new file in myRepository
called .gitignore
. In that file, put the following code:
*
*/
!.gitignore
This will ignore all files, folder and subdirectories, but include the .gitignore
file itself. That means the file will be pushed, and we can keep the directory while not keeping any of its contents.
Next, just push your git repository as you would usually do by running the following commands:
git add .
git commit -m "Added .gitignore"
git push
Your directory will now persist in your repository, while the contents of the directory will not.
Top comments (2)
The convention is rather use a .gitkeep file in the directory.
I think we should create file
.gitkeep
instead of.gitignore