I have a bunch of modified files in my git repository and a large number of them are xml files. How do I revert changes (reset modifications) of only the xml files?
Try Git checkout --<file> to discard uncommitted changes to a file. Git reset --hard is for when you want to discard all uncommitted changes. Use Git reset --hard <commit id> to point the repo to a previous commit.
Use git reset to Remove Uncommitted Changes in Git Another way to remove uncommitted changes using git reset is with option --hard and params HEAD . The --hard option specifies Git to throw ALL changes between the current state and the commit in the last argument.
You don't need find
or sed
, you can use wildcards as git understands them (doesn't depend on your shell):
git checkout -- "*.xml"
The quotes will prevent your shell to expand the command to only files in the current directory before its execution.
You can also disable shell glob expansion (with bash) :
set -f git checkout -- *.xml
This, of course, will irremediably erase your changes!
Thank you all for your replies, but I have found, for me, most accurate solution:
git diff --name-only -- '*.xml' | sed 's, ,\\&,g' | xargs git checkout --
sed is user to escape spaces which troubled xargs and everything is working very fast and accurate.
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