заметки на полях

Блокнот разработчика

easy git

Отмена изменений: reset, checkout и revert

Удаление закомиченных файлов

Если по ошибке были закомичены файлы прежде чем добавлены в .gitignore, то можно удалить их из репозитория, не трогая локальные:

git rm --cached src/user/www/mail-temp/welcome.html

Если надо удалить директорию целиком, то необходимо добавить ключ рекурсивной обработки -r:

git rm -r --cached src/user/www/mail-temp

Есть несколько способ вернуться к предыдущей точке разработки, разлчия лишь в том – были ли закомичены последние изменения.

Исправления незакомиченных ошибок

Если вы посчитали что последние изменения были явно лишними и должны быть из проекта удалены, но еще небыли закомичены, то можно просто вернуться к состоянию предыдущего комита:

1
$ git reset --hard HEAD

Это удалит все внесенные изменения, а так же все изменения связанные со структурой проекта. Результат выполнения обоих комманд:

1
2
$ git diff
$ git diff --cached

будет одинаково пустым.

Если необходимо восстановить только один файл:

1
2
$ git checkout -- config.php
$ git checkout HEAD config.php

Вторая комманда возвратит файл к состоянию последнего коммита, а в чем разница я пока не прочувствовал. (Оригинал: The first command restores config.php to the version in the index, so that «git diff config.php» returns no differences. The second command will restore hello.rb to the version in the HEAD revision, so that both «git diff config.php» and «git diff –cached config.php» return no differences.)

Исправление закомиченных ошибок

Материал по теме:

Undoing in Git – Reset, Checkout and Revert

Undoing in Git – Reset and Revert

Leave a Reply