Follow us on X (Twitter)  Like us on Facebook  Connect with us on LinkedIn  Subscribe to our YouTube Channel  Subscribe to our WhatsApp Group

Earlier we discussed about 'git add' to add files to index, 'git mv' to rename or move files. We have also discussed about 'git commit' to push the changes to staging. Now what to do if one wants to remove a file from working tree and index?


We are today going to discuss on this topic. We have a command 'git rm' to handle this case. Let's start today's discussion, part of the 'Git Tutorial Series'.


Remove files from the working tree and the index (


Though you can directly delete a file or files from a working tree and commit the changes using the command 'git add -A' or 'git commit -a', but Git provides an alternative way to delete the file using the 'git rm' command.


The 'git rm' command not only removes the specified file from your working tree, but also removes it from the index. There are no options to remove the file only from the working tree and still keep it indexed.


The files being removed have to be identical to the tip of the branch and no updates to their contents can be staged in the index. You can override this default behaviour by using the -f option/switch. When the option --cached is given, the staged content has to match either the tip of the branch or the file on the disk, allowing the file to be removed from just the index.


Here's the list of command with parameters to use:


Remove a file from working tree and index:

$ git rm <filePath>                              # You can also use a global asterisk


Remove all files in the directory:

$ git rm <directoryPath>


Forcefully remove the file and the index:

$ git rm -f <filePath>

$ git rm --force <filePath>


Recursively remove files in folder and subfolders:

$ git rm -r <directoryPath>


Force to recursively remove files in folder and subfolders:

$ git rm -r -f <directoryPath>

$ git rm -r --force <directoryPath>



Was this post useful? If you came to this page by searching online about git basics, please have a look into my other blog posts. Subscribe to the RSS feed or the email newsletter to keep yourself updated.




Have a question? Or, a comment? Let's Discuss it below...


Thank you for visiting our website!

We value your engagement and would love to hear your thoughts. Don't forget to leave a comment below to share your feedback, opinions, or questions.

We believe in fostering an interactive and inclusive community, and your comments play a crucial role in creating that environment.