Git rm and mv: Delete and Rename Files
When you delete or rename a file from the normal file manager, Git notices it but you still need to tell Git about it. The commands git rm and git mv do the file operation and stage it in one step.
Delete a file with git rm
$ git rm a.txt
rm 'a.txt'
$ git status -s
D a.txt
The file is removed from the folder, and the deletion is staged (D). Now you can commit it.
$ git commit -m "Remove a.txt"
[main 8837906] Remove a.txt
1 file changed, 1 deletion(-)
delete mode 100644 a.txt
If you deleted the file by hand
If you used the file manager or the rm command, Git shows it as deleted but not staged. Stage it with git rm (or git add).
$ rm b.txt
$ git status -s
D b.txt
$ git rm b.txt
rm 'b.txt'
$ git status -s
D b.txt
$ git commit -q -m "Remove b.txt"
Remove a folder
$ git rm -r old
rm 'old/x.txt'
rm 'old/y.txt'
$ git status -s
D old/x.txt
D old/y.txt
$ git commit -q -m "Remove old folder"
Stop tracking a file but keep it on disk
The --cached option removes the file from Git only. The file stays in your folder. It is used when you added a file by mistake, for example a file with passwords.
$ git rm –cached c.txt
rm 'c.txt'
$ git status -s
D c.txt
?? c.txt
$ ls
c.txt
d.txt
$ git commit -q -m "Stop tracking c.txt"
Rename or move a file with git mv
$ git mv d.txt letters.txt
$ git status -s
R d.txt -> letters.txt
?? c.txt
Git shows R (renamed). The git mv command is the same as doing three steps: rename the file, git rm the old name, and git add the new name.
$ mkdir docs
$ git mv letters.txt docs/letters.txt
$ git status -s
R d.txt -> docs/letters.txt
?? c.txt
$ git commit -q -m "Move letters.txt to docs"
$ git log –oneline –follow — docs/letters.txt
5a0a64e (HEAD -> main) Move letters.txt to docs
d7a1368 Add files
The option --follow in the log keeps showing the history of a file after it was renamed.
Useful options
| Option | Meaning |
|---|---|
-r | Remove a folder and everything inside |
-f | Force the removal, even if the file has changes |
--cached | Remove from the repository only, keep the file on disk |
-n | Dry run, only show what will be removed |
| Exercises & Assignments |
|---|
| No Content Found. |
| Interview Questions & Answers |
|---|
| No Content Found. |