TortoiseGit Manual

Adding New Files

Figure 2.42. Explorer context menu for unversioned files

Explorer context menu for unversioned files


If you created new files during your development process then you need to add them to source control too. Select the file(s) and/or NOT empty directory and use TortoiseGitAdd.

After you added the files to source control the file appears with a added icon overlay which means you first have to commit (and push) your working tree to make those files available to other developers. Just adding a file does not affect any remote repository!

Many Adds

You can also use the Add command on folders. In that case, the add dialog will show you all unversioned files inside that versioned folder. This helps if you have many new files and need to add them all at once.

Empty directories

Git only tracks content and, thus, cannot version (empty) directories. If you need a directory to be automatically created on checkout, make sure at least one versioned file is in it (e.g. a placeholder file such as .gitkeep or .gitignore).

To add files from outside your working tree you can use the drag-and-drop handler:

  1. select the files you want to add

  2. right-drag them to the new location inside the working tree

  3. release the right mouse button

  4. select Context MenuGit Add copy and add files. The files will then be copied to the working tree and added to version control.

You can also add files within a working tree simply by (left-)dragging and dropping them onto the commit dialog.

If you add a file by mistake, you can undo the addition before you commit using TortoiseGitDelete (keep local)... or Revert.

Figure 2.43. Add finished

Add finished


After adding the files, you may commit by clicking the shortcut menu button. Additionally, there are options to mark the newly added files as executable / symlink. Remember to mark executable bit for files such as Unix shell script. This is to facilitate sharing repository with Linux / MacOS environment.

You can find more information at git-add(1) man-page