I'm trying to learn Git. I'm confused between
git rm --cached file
and
git reset file
both of the commands seem to take the file from staged to un-staged area. How do the commands differ?
I'm trying to learn Git. I'm confused between
git rm --cached file
and
git reset file
both of the commands seem to take the file from staged to un-staged area. How do the commands differ?
git rm --cached <file>
will completely remove the file's contents from the index. This means that on commit the file will be removed from the HEAD
commit. (If the file was only added to the index and not yet tracked this is a "no-op".)
git reset -- <file>
resets the contents of the file in the index to be the same as the head commit. This means that on commit no changes will be committed to the file. This operation is not valid if there is no tracked version of the file in the HEAD
commit.
git rm --cached
will add the delete action of the file to the index, just like git add
will add an add action. –
Ilke git reset
doesn't reset the index to what it was right after the last commit, namely empty. It keeps the list of staged files, but resets their contents to that of the last commit. Therefore, git reset
isn't the opposite of (doesn't undo) git add
. –
Daveta git ls-files -s
. It lists all the files in the index, whether staged or not. What it shows will be what will be put in to your next commit. –
Vaishnava © 2022 - 2024 — McMap. All rights reserved.