Warning: mkdir(): No space left on device in /var/www/hottg/post.php on line 59

Warning: file_put_contents(aCache/aDaily/2025-07-19/post/prog_point/--): Failed to open stream: No such file or directory in /var/www/hottg/post.php on line 72
простымисловами: Как «откатить» последний коммит в Git @Точка входа в программирование
TG Telegram Group & Channel
Точка входа в программирование | United States America (US)
Create: Update:

простымисловами: Как «откатить» последний коммит в Git

❗️ Важно. Прежде чем что-то отменять, убедитесь, что понимаете, нужно ли изменять историю и синхронизирован ли ваш коммит с удалённым репозиторием (GitHub, GitLab и т. д.). Для приватных веток это обычно безопасно, но в общей ветке лучше быть осторожным.


Существует несколько способов сделать это. Давайте рассмотрим каждый из них:

1. Вернуть изменения в рабочие файлы, но убрать коммит из истории

Если вы хотите переделать сообщение или добавить файлы, используйте git reset --soft HEAD~1. Он убирает «снимок» последнего коммита, но все ваши изменения остаются в индексе (staging). Дальше можно поправить файлы, написать новое сообщение и закоммитить снова.

2. Убрать коммит из истории, но оставить изменения «распакованными» (не в индексе)

Если нужно сначала ещё раз глянуть на файлы, а потом решать, что с ними делать: git reset --mixed HEAD~1 или просто git reset HEAD~1. Он удаляет последний коммит, а файлы раскладывает в рабочую директорию. Индекс очищен — придётся снова добавлять нужные файлы через git add.

3. Полностью стереть и коммит, и изменения

Если коммит «не тот» и вам не нужны даже изменения: git reset --hard HEAD~1. Он возвращает ветку и рабочую директорию к состоянию до коммита. Восстановить потом будет непросто, поэтому используйте осторожно.

Коммит уже ушёл на сервер (GitHub, GitLab):

а) Историю изменять нельзя (например, в общей ветке)

Используйте «отменяющий» коммит: git revert HEAD. Git создаст новый коммит, который инвертирует изменения последнего. История остаётся линейной, а коллегам не нужно ничего форс-пушить.

б) Историю нужно перезаписать и вы уверены, что можно force-push

git reset --hard HEAD~1
git push --force # или --force-with-lease, чтобы не затереть чужие коммиты


Такой подход стирает коммит на сервере. Договоритесь с командой, чтобы никто не успел на основе старой истории создать новые коммиты.

Чтобы точно избежать проблем, воспользуйтесь этим коротким чек-листом перед «откатом»:

1. Проверьте, пушили ли вы коммит.
2. Выберите подходящее действие:
reset --soft — оставить всё в индексе;
reset --mixed — убрать из индекса, но сохранить файлы;
reset --hard — удалить всё;
revert — отменить «по-честному», если история уже общая.
3. При force-push предупредите коллег!

#git

простымисловами: Как «откатить» последний коммит в Git

❗️ Важно. Прежде чем что-то отменять, убедитесь, что понимаете, нужно ли изменять историю и синхронизирован ли ваш коммит с удалённым репозиторием (GitHub, GitLab и т. д.). Для приватных веток это обычно безопасно, но в общей ветке лучше быть осторожным.


Существует несколько способов сделать это. Давайте рассмотрим каждый из них:

1. Вернуть изменения в рабочие файлы, но убрать коммит из истории

Если вы хотите переделать сообщение или добавить файлы, используйте git reset --soft HEAD~1. Он убирает «снимок» последнего коммита, но все ваши изменения остаются в индексе (staging). Дальше можно поправить файлы, написать новое сообщение и закоммитить снова.

2. Убрать коммит из истории, но оставить изменения «распакованными» (не в индексе)

Если нужно сначала ещё раз глянуть на файлы, а потом решать, что с ними делать: git reset --mixed HEAD~1 или просто git reset HEAD~1. Он удаляет последний коммит, а файлы раскладывает в рабочую директорию. Индекс очищен — придётся снова добавлять нужные файлы через git add.

3. Полностью стереть и коммит, и изменения

Если коммит «не тот» и вам не нужны даже изменения: git reset --hard HEAD~1. Он возвращает ветку и рабочую директорию к состоянию до коммита. Восстановить потом будет непросто, поэтому используйте осторожно.

Коммит уже ушёл на сервер (GitHub, GitLab):

а) Историю изменять нельзя (например, в общей ветке)

Используйте «отменяющий» коммит: git revert HEAD. Git создаст новый коммит, который инвертирует изменения последнего. История остаётся линейной, а коллегам не нужно ничего форс-пушить.

б) Историю нужно перезаписать и вы уверены, что можно force-push

git reset --hard HEAD~1
git push --force # или --force-with-lease, чтобы не затереть чужие коммиты


Такой подход стирает коммит на сервере. Договоритесь с командой, чтобы никто не успел на основе старой истории создать новые коммиты.

Чтобы точно избежать проблем, воспользуйтесь этим коротким чек-листом перед «откатом»:

1. Проверьте, пушили ли вы коммит.
2. Выберите подходящее действие:
reset --soft — оставить всё в индексе;
reset --mixed — убрать из индекса, но сохранить файлы;
reset --hard — удалить всё;
revert — отменить «по-честному», если история уже общая.
3. При force-push предупредите коллег!

#git
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5


>>Click here to continue<<

Точка входа в программирование




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)


Warning: Undefined array key 3 in /var/www/hottg/function.php on line 115

Fatal error: Uncaught mysqli_sql_exception: Can't create/write to file '/tmp/#sql-temptable-a06e-55b579-23e3.MAI' (Errcode: 28 "No space left on device") in /var/www/hottg/function.php:216 Stack trace: #0 /var/www/hottg/function.php(216): mysqli_query() #1 /var/www/hottg/function.php(115): select() #2 /var/www/hottg/post.php(351): daCache() #3 /var/www/hottg/route.php(63): include_once('...') #4 {main} thrown in /var/www/hottg/function.php on line 216