Git reset

Все виды команды `git reset`.

Удалить всё лишнее, включая незакоммиченные изменения

 

# Clear working directory tree from all changes
$ git checkout -f HEAD

 
 

Откатить последний коммит и вернуть файлы в незакоммченное состояние (т.е. изменения станут незакоммиченными, но готовыми для коммита)

 

# Reset the latest commit, and leave the changes in the index
$ git reset --soft HEAD^

 
 

Откатить последний коммит и убрать файлы из гита (т.е. нужно будет сначала сделать `git add .`)

 

# Reset the latest commit, and leave the changes in the working directory
$ git reset HEAD^

 
 

Откатит незакоммиченные файлы из состояния готовых к коммиту в состояние «untracked» (т.е. нужно будет сначала сделать `git add .`)

 

# Undo add, move the changes from the index to the working directory
$ git reset

 
 

Откатиться до последнего неуспешного пулла/мёржа. На деле сбросить все коммиты, которых ещё нет в `origin`

Мой любимый резет.

# Reset the latest failed pull or merge
$ git reset --hard

 
 

Откатиться до последнего успешного пулла или мёржа (что бы это ни значило)

Чем отличается от предыдущего — выше моего понимания, ни разу не использовал.

# Reset the latest successful pull or merge
$ git reset --hard ORIG_HEAD

 
 

Откатывает последний пулл/мёрж

Ни разу не использовал, ничего сказать не могу.

# Reset the latest pull or merge, into a dirty working tree
$ git reset --merge ORIG_HEAD

 
 

Откатывает всё, чего нет в remote

# Resets branch to remote's state
$ git reset --hard origin/

 
 

Откатывает директорию, которой случайно сделали git add .

# Resets dir to unstaged state (http://stackoverflow.com/questions/4639091/undo-git-add-dir)
$ git rm --cached -r dir

Вот оригинал:
http://anders.janmyr.com/2009/09/git-undo-reset-or-revert.html

LEAVE A COMMENT