Okay, so I was searching "How to Remove Manually Deleted files from Git" without actually doing git rm file.txt
for each file when I came across "Removing multiple files from a Git repo that have already been deleted from disk".
The two most Up-Voted commands were:
git add -u
git add -A
Although both of them worked for me, I still can't understand the difference and the solutions on the page don't explain it either. My questions are, how are they differ from each other, and what other git commands can be used to remove files that have been deleted manually from the disk?
The difference lies in which files get added. git add -A command will add all modified and untracked files in the entire repository. Whereas git add . will only add modified and untracked files in the current directory and any sub-directories. If you are at the root of the repo, they have the same effect.
" git add -u " only adds currently tracked files (which have been modified) to the staging area and also checks if they have been deleted (if yes, they are removed from staging area). This means that it does not stage new files.
git add : takes a modified file in your working directory and places the modified version in a staging area. git commit takes everything from the staging area and makes a permanent snapshot of the current state of your repository that is associated with a unique identifier.
The git add command adds new or changed files in your working directory to the Git staging area. git add is an important command - without it, no git commit would ever do anything. Sometimes, git add can have a reputation for being an unnecessary step in development.
git add -A
is equal to git add .
+ git add -u
When you do a "git add .
", it adds all files (existing, modified and new) to the staging area but it does not remove files that have been deleted from the disk.
"git add -u
" only adds currently tracked files (which have been modified) to the staging area and also checks if they have been deleted (if yes, they are removed from staging area). This means that it does not stage new files.
Doing "git add -A
" performs both of these steps, that is, stages your entire directory as it is.
git add -A
: Stages Everything git add -u
: Stages only Modified Files git add .
: Stages everything, without Deleted Files Read the Documentation for more.
git add -A
will track new, modified and deleted files git add -u
will track modified and deleted files
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With