Отмена неподтвержденных (unpushed) коммитов в Git
Сохранение изменений (keep work)
Чтобы отменить последний коммит, сохранив внесенные изменения в рабочем каталоге, используйте команду:
git reset --soft HEAD~1
Эта команда переместит указатель HEAD на предыдущий коммит, но оставит изменения подготовленными (staged) и в вашем рабочем каталоге. Вы сможете изменить их и закоммитить снова.
Удаление изменений (destroying work)
⚠️ Эта команда полностью удалит последние изменения, к которым будет невозможно вернуться.
Чтобы отменить последний коммит и удалить все внесенные изменения,используйте команду:
git reset --hard HEAD~1
Очистка репозитория
⚠️ Будьте осторожны при использовании этой команды, так как удаленные файлы и каталоги не могут быть восстановлены.
git clean -xfd
Используется для удаления неотслеживаемых файлов из вашего рабочего каталога. Вот что делает каждый флаг в этой команде:
-x
: Удаляет неотслеживаемые файлы, а также файлы, которые обычно игнорируются Git (то есть файлы, указанные в.gitignore
).-f
: (force) Принудительное удаление файлов. Git потребует подтверждения, если вы не используете этот флаг, чтобы убедиться, что вы действительно хотите удалить эти файлы.-d
: Удаляет неотслеживаемые каталоги в дополнение к неотслеживаемым файлам.
Вместе эта команда удаляет все неотслеживаемые файлы и каталоги, включая те, которые игнорируются Git, и делает это принудительно.
LFS
git lfs ls-files | grep '\.png$'
Explanation:
git lfs ls-files
This command lists all the files currently managed by Git LFS in your repository.
grep '\.png$'
: This filters the output of git lfs ls-files, showing only lines that end with ".png".
\.png
: Matches the literal string ".png" (the \ escapes the . so it's interpreted as a literal dot).
$
: Anchors the pattern to the end of the line, ensuring that only files ending in ".png" are matched.