Git Commands

An overview of the most important Git commands

git rm

The "rm" command helps you to remove files from a Git repository. It allows you to not only delete a file from the repository, but also - if you wish - from the filesystem.

Deleting a file from the filesystem can of course easily be done in many other applications, e.g. a text editor, IDE or file browser. But deleting the file from the actual Git repository is a separate task, for which git rm was made.

Important Options

<filename>

The name of a file (or multiple files) you want to remove. Naming the file you want to remove can be as simple as providing the filename / path to a single file. But you can also provide multiple filenames (delimited by spaces) or even a wildcard pattern (e.g. test.*).

--cached

Removes the file only from the Git repository, but not from the filesystem. By default, the git rm command deletes files both from the Git repository as well as the filesystem. Using the --cached flag, the actual file on disk will not be deleted.

-r

Recursively removes folders. When a path to a directory is specified, the -r flag allows Git to remove that folder including all its contents.

--dry-run

No files are actually removed. With this option (or its shorthand -n notation), you will only see an output of the files that Git would remove - but no files are actually deleted.


Tip

Removing Files in Tower

In case you are using the Tower Git client, removing files is very easy: by selecting the "Move to Trash" option, Tower will automatically mark the file as "deleted" in Git. And if you change your mind, you can simply hit CMD+Z to restore the file!

Usage Examples

To remove a file both from the Git repository and the filesystem, you can use git rm without any parameters (except for the file's name, of course):

$ git rm file1.txt

If you only want to remove the file from the repository, but keep it on the filesystem, you can add the --cached flag:

$ git rm file2.txt --cached

When trying to delete multiple files in a directory or via a glob pattern, you might want to perform a "dry-run" first and see which files would be removed:

$ git rm css/* --dry-run
rm 'css/about.css'
rm 'css/general.css'


Learn More

About Us

As the makers of Tower, the best Git client for Mac and Windows, we help over 100,000 users in companies like Apple, Google, Amazon, Twitter, and Ebay get the most out of Git.

Just like with Tower, our mission with this platform is to help people become better professionals.

That's why we provide our guides, videos, and cheat sheets (about version control with Git and lots of other topics) for free.