Reputation: 290415
How can I get rid of all the changes in all the files of my repository?
Say I am in a branch and I did some changes. git status
returns a set of files in the "Changes not staged for commit" and I notice I would like to get rid of all of these changes in all the files. How can I do this with a single command?
I know I can do the following to checkout just one file:
git checkout -- <file>
I noticed that git checkout --
alone returns the list of all uncommited files. However, I cannot find a way to checkout all of them, something like git checkout --all
.
I checked man git checkout
and could not find anything. Also I saw Git: Checkout all files except one and tried git checkout .
and did not work either.
Would I have to do it programmatically, by looping through the git checkout --
output?
Upvotes: 180
Views: 252346
Reputation: 294
Of course you could use hard reset:
git reset --hard
Additionally I'm using simple method allowing to specify the pattern:
git checkout `git ls-files -m | grep "some pattern"`
So here "some pattern" could be the folder or file name or file extension.
Upvotes: 4
Reputation: 411
git checkout .
will works otherwise it won't workUpvotes: 2
Reputation: 433
If you want to checkout all the files 'anywhere'
git checkout -- $(git rev-parse --show-toplevel)
Upvotes: 0
Reputation: 8906
Other way which I found useful is:
git checkout <wildcard>
Example:
git checkout *.html
More generally:
git checkout <branch> <filename/wildcard>
Upvotes: 16
Reputation: 388313
If you are at the root of your working directory, you can do git checkout -- .
to check-out all files in the current HEAD and replace your local files.
You can also do git reset --hard
to reset your working directory and replace all changes (including the index).
Upvotes: 267