Сохраняю для себя различные полезные советы по работе с Git, дабы не гуглить постоянно одно и то же. Возможно, кому-то еще будет полезно.
- Сброс (отмена) коммита(ов). Для этого есть команда
git reset
.
git reset --hard отменит все незакоммиченные изменения.
git reset --hard HEAD^ откатит на один коммит назад.
git reset --hard HEAD~n откатит последние n коммитов. - Предыдущий пункт описывает достаточно рискованные манипуляции, в случае ошибки можно потерять важные изменения. Однако если прошло немного времени, то git все вернет:
git reflog
покажет последние коммиты, откаты и т.д. Смотрим нужный SHA1 и запоминаем/копируем/переписываем.
git reset --hard SHA1
вернет нас обратно к этому SHA1. - Когда в репозитории много веток, получить их разом можно командой
git fetch <имя remote>
- Создать локальную копию ветки удобно с использованием ключа
--track
, напримерgit checkout --track -b origin/3.1/develop
. - Выдернуть конкретный коммит из другой ветки можно командой cherry-pick:
git cherry-pick commit_hash
- Поиск ветки, в которой лежит нужный коммит:
git branch --contains commit_hash
- Выдергивание списка коммитов в формате «один коммит — одна строка». Содержит только хэш (короткий) и описание коммита. Потом удобно его grep’ать, чтобы остались только нужные (например, по номеру тикета из описания):
git log --pretty='tformat:%h %s'
Спасибо. Только вот начал изучать Git =)
git reflog вернул день работы
спасибо ))