How to add and commit an empty directory in my Git repository?

Posted November 16, 2020 12.6k views
Linux BasicsGitLinux Commands

Hi all,

I need to commit an empty directory to my Git project, but when I create a new directory with:

  • mkdir my_dir

And then check the status with:

  • git status

Git says that there is nothing to commit, so running git add . does not do anything.

How can I add an empty directory/folder to my Git repository?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Submit an Answer
1 answer

Hi there,

Yes, indeed, by design, you can not commit empty directories, containing no files, to a Git repository.

What I usually do in such cases is to create a .gitkeep or a .gitignore file inside that directory:

  • First create the folder:
  • mkdir your_dir_here
  • Then create that empty .gitkeep file:
  • touch your_dir_here/.gitkeep
  • After that, you will be able to see the file with git status:
Untracked files:
  (use "git add <file>..." to include in what will be committed)

  • And add the file:
  • git add your_dir_here/
  • Finally commit as normal:
  • git commit -m "Adding Empty Directory"

The .gitkeep does not really have any special meaning for Git, but it will allow you to commit the empty directory in question!

Alternatively, you can use any other file. My advice is to be consistent throughout your project(s).