How do I create a folder in a GitHub repository?
I want to create a folder in a GitHub repository and want to add files in that folder. How do I achieve this?
TL;DR Use /
in the file name field to create folder(s), e.g. typing folder1/file1
in the file name field will create a folder folder1
and a file file1
.
Original answer
You cannot create an empty folder and then add files to that folder, but rather creation of a folder must happen together with adding of at least a single file. This is because git doesn't track empty folders.
On GitHub you can do it this way:
- Go to the folder inside which you want to create another folder
- Click on New file
- On the text field for the file name, first write the folder name you want to create
-
Then type
/
. This creates a folder - You can add more folders similarly
- Finally, give the new file a name (for example,
.gitkeep
which is conventionally used to make Git track otherwise empty folders; it is not a Git feature though) - Finally, click Commit new file.
Git doesn't store empty folders. Just make sure there's a file in the folder like doc/foo.txt and run git add doc
or git add doc/foo.txt
, and the folder will be added to your local repository once you've committed (and appear on GitHub once you've pushed it).
For the ones using the web browser, you can do the following:
- Once in the master repository, click on Create new file.
- In the name of file box at the top, enter the name of your folder
- Use the / key after the name of the folder. Using this forward slash creates the folder
- You can see a new box appear next to the folder name wherein you can type the name of your file.
- In the Commit new file box at the bottom of the page, you can type the description for your file.
- Select the radio button Commit directly to the
master
branch. - Click on the Commit new file button
- You will see the new directory will be created.
First you have to clone the repository to you local machine
git clone github_url local_directory
Then you can create local folders and files inside your local_directory
, and add them to the repository using:
git add file_path
You can also add everything using:
git add .
Note that Git does not track empty folders. A workaround is to create a file inside the empty folder you want to track. I usually name that file empty
, but it can be whatever name you choose.
Finally, you commit and push back to GitHub:
git commit
git push
For more information on Git, check out the Pro Git book.