Как быстро отменить поэтапные и неустановленные изменения в git?
Какой самый быстрый способ отменить изменения (поэтапные и нестационарные) в Git?
Оба файла не установлены.
$ git status -s
M file1.txt # unstaged
?? oops.txt # unstaged
Один файл поставлен, один файл не установлен.
$ git status -s
M file1.txt # staged
?? oops.txt # unstaged
Я могу add
все индексировать, а затем stash
save
и drop
.
$ git add .
$ git stash save
$ git stash drop
$ git status
nothing to commit, working directory clean
Есть ли более быстрый способ?
Ответы
Ответ 1
Вам нужно использовать две команды: git reset --hard
и git clean -fd
. git reset --hard
все поэтапные изменения и git clean -fd
, неустановленные изменения (файлы и каталоги). Вы можете создать псевдоним, который будет выполнять две команды. Для этого просто добавьте следующие строки в ваш .gitconfig
:
[alias]
undo = '!git reset --hard && git clean -fd'
Ответ 2
git reset HEAD
git checkout .
git reset HEAD
отключит все изменения и git checkout.
отбрасывает все изменения.
Ответ 3
Вы можете использовать git clean
$ git status -s
?? oops.txt
$ git clean -f
Removing oops.txt
$ git status -s
Дополнительная информация:
Очищает рабочее дерево путем рекурсивного удаления файлов, которые не являются под управлением версии, начиная с текущего каталога.
Ответ 4
git stash
это вариант. Это удалит поэтапные и неустановленные изменения. Вы можете получить их снова, если вам нужно, с помощью git stash pop.