Git Remove Untracked Files

In this article, we will explore how to remove untracked files from your Git repository, helping you keep your codebase clean and focused. We’ll cover various scenarios, from removing individual untracked files to cleaning up entire directories of untracked content.

1. Introduction

During software development, Git is usually used as a version control system to track changes in the development process. In a Git project, there are distinct types of files present which are tracked files and untracked files. Tracked files are files already added to Git using the git add command while untracked files are files Git does not know about yet because they haven’t been added or committed to the Git database using the git add command. This blog post explains how to identify untracked files and how to remove untracked files in a Git project.

2. Understanding Untracked Files

In a Git project, untracked files are files that have not yet been added to the git repository using the git add command. Untracked files are usually not harmful to a project, but it is sometimes necessary to remove them as this would improve the organization and efficiency of the project during the development process. There are several ways in which one can have untracked files in a project. One example would be when creating a new project in an Integrated Development Environment (IDE)specifically Netbeans. During the creation of a new project, some auto-generated files and folders are usually added to the project and you do not want these files added to the Git repository.

Additionally, there could be some files that are important to a project which you would want to remain untracked but still added to the project. These files are usually added in a .gitignore file where exclusion rules telling Git to ignore these files/directories are written.

3. Identifying Untracked Files

Generally, the "git clean" command is the easiest and fastest way to remove/delete untracked files. The "git clean" command is usually used with the following appending options "-i, -f, -n, -d, -q, -e and -x or -X". It is important to know the untracked files or folders you intend to delete before actually proceeding to removing them. To show the files/folders that would be removed/deleted from a working Git project use the following command. This process is usually referred to as a dry run.

git clean -n

The above command, tells Git to list only the files to be deleted. It does not include folders or sub-folders. To view and list untracked files and folders to be removed, use the command below.

git clean -nd

4. Safely Removing Untracked Files

The git clean command is the easiest and fastest way to remove untracked files in a Git repository. The "git clean -f" command is the most widely and commonly used command to remove untracked files as it forces Git to remove untracked files. Other ways of removing untracked files could be identifying the files and using the rm command to remove them in a linux system or terminal which could be time consuming.

To remove untracked files use the -f option with the git clean command. The command below shows how to remove untracked files in Git.

git clean -f

It is important to note that once the untracked files are deleted from Git, they can not be restored back.

To remove untracked folders use the "-f" with the "-d" flag option with the "git clean" command as shown below which would remove untracked files in the current folder and any other sub folder

git clean -f -d

To remove untracked files inside a sub-folder, use the -f flag option with the path to the sub-folder with the git clean command as shown below

git clean -f path/to/subfolder

To prevent some untracked files from being removed when using the -f option flag, append the -e option flag followed by the untracked files you want to exclude from being removed. The example below will prevent an untracked file named properties.config from being deleted when using the -f flag

git clean -f -e properties.config

To delete untracked files in a specific folder only, use the -d option flag followed by the folder name. For example if we want to remove untracked files in a folder named config, use the following git clean command below

git clean -f -d config

Untracked files can also be removed from Git in an interactive mode using the -i flag option. The following command shows how to enter an interactive mode

git clean -i

After entering the above command, Git enters an interactive mode showing a main menu with a list of all available options. The main menu presents options for users to clean (delete untracked files), ask each (selectively choose untracked files to be deleted by iterating through a list of untracked files), as well as options to filter by pattern, ask for help, quit and select by numbers. The screenshot below shows the output of terminal after entering the interactive mode using the git clean -i command

Fig. 1: Git Remove Example.
Fig. 1: Git Remove Example.

It is also possible to remove .gitignore files using the git clean command. To remove .gitignore files along with untracked files, use the following command below

git clean -f -x

5. Conclusion

This blog post has been used to explain what untracked files are and how to use the git clean command to easily and safely remove untracked files. It also shows that there are other ways to remove untracked files but using the git clean command is probably the fastest way to do it. Using the git clean -n command also allows a user to view all the untracked files before proceeding to delete them. To find out more information about using the git clean command and removing untracked files from a Git project, please refer to the Git Documentation.

Omozegie Aziegbe

Omos holds a Master degree in Information Engineering with Network Management from the Robert Gordon University, Aberdeen. Omos is currently a freelance web/application developer who is currently focused on developing Java enterprise applications with the Jakarta EE framework.
Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments
Back to top button