Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save JustATestName144/2929824b5a864f1bbca5dff7c84b711c to your computer and use it in GitHub Desktop.
Save JustATestName144/2929824b5a864f1bbca5dff7c84b711c to your computer and use it in GitHub Desktop.
Git. Reset.
Сброс позволяет откатиться на определённую версию в истории изменений Git. Всего есть три вида сброса:
git reset --hard {{some-commit-hash}} — вернуться на определённый коммит в истории. Все изменения, сделанные после этого коммита пропадут.
git reset {{some-commit-hash}} — вернуться на определённый коммит в истории. Все изменения, сделанные после этого коммита, получат состояние «Not staged for commit». Чтобы вернуть их обратно, нужно использовать команды git add и git commit.
git reset --soft {{some-commit-hash}} — вернуться на определённый коммит в истории. Все изменения, сделанные после этого коммита, получат состояние «Staged for commit». Чтобы вернуть их обратно, нужно использовать команду git commit.
Поналачу эта информация может показаться бесполезной, однако, когда вы начнёте работать с разными версиями файлов, она вам очень пригодится. Например, я для себя выделил вот такие сценарии использования этих команд:
Если я хочу отменить все внесённые изменения и начать работу с чистого листа, я использую команду git reset --hard HEAD (самый частый случай).
Если я хочу отредактировать изменения и/или закоммитить файлы в другом порядке, я использу git reset {{some-start-point-hash}}.
Если я просто хочу взять три последних коммита и слить их в один большой коммит, я использую команду git reset --soft {{some-start-point-hash}}.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment