Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the best way to discard all your changes (with untracked files) on a git branch?

Is there a simple command in git to remove all changes made to a branch and remove all untracked files? I would like to have a clean branch.

git checkout does leave some untracked files and also shows a message that your files will be overritten...

git reset --hard HEAD also leave untracked files

like image 534
Patryk Avatar asked Sep 12 '25 00:09

Patryk


2 Answers

Two ways to do this with two commands.

From Jubobsref

git reset --hard $rev
git clean -f

From R0MANARMYref

git stash --include-untracked
git stash drop

Either of those can be aliased to a single command if necessary.

like image 190
2 revsEtan Reisner Avatar answered Sep 14 '25 19:09

2 revsEtan Reisner


You have several ways to do what you want.

Detailed answer can be found here: How to move HEAD back to a previous location? (Detached head)

Another option which is not there and is suitable answer for your question is git clean.

git clean

You can do a git clean to remove all the un-tracked files (Backup files)

git clean -Xfd // capital X
git clean -xfd // small x

-x (lower case)

Don’t use the standard ignore rules read from .gitignore (per directory) and $GIT_DIR/info/exclude, but do still use the ignore rules given with -e options.

This allows removing all untracked files, including build products.
This can be used (possibly in conjunction with git reset) to create a pristine working directory to test a clean build.

-X (uppercase)

Remove only files ignored by Git.
This may be useful to rebuild everything from scratch, but keep manually created files.

like image 37
CodeWizard Avatar answered Sep 14 '25 20:09

CodeWizard