Как исправить предыдущий локальный коммит
Используйте git-gui (или аналогичный) для выполнения git commit --amend
. Из графического интерфейса вы можете добавлять или удалять отдельные файлы из коммита. Вы также можете изменить сообщение коммита.
Как отменить предыдущий локальный коммит
Просто сбросьте вашу ветку в предыдущее местоположение (например, используя gitk
или git rebase
). Затем повторно примените изменения из сохраненной копии. После сборки мусора в вашем локальном хранилище будет похоже на то, что нежелательный коммит никогда не происходил. Чтобы сделать все это в одной команде, используйте git reset HEAD~1
.
Слово предупреждения : Неосторожное использование git reset
- хороший способ привести вашу рабочую копию в запутанное состояние. Я рекомендую новичкам Git избегать этого, если они могут.
Как отменить публичный коммит
Выполните обратный выбор вишни ( git-revert ), чтобы отменить изменения.
Если вы еще не внесли другие изменения в свою ветку, вы можете просто сделать ...
git revert --no-edit HEAD
Затем отправьте обновленную ветку в общий репозиторий.
История коммитов покажет оба коммита, отдельно .
Дополнительно: исправление приватной ветки в публичном хранилище
Это может быть опасно - убедитесь, что у вас есть локальная копия ответвления.
Также обратите внимание: вы не хотите делать это, если кто-то еще может работать в филиале.
git push --delete (branch_name) ## remove public version of branch
Очистите вашу ветку локально, затем повторите ...
git push origin (branch_name)
В обычном случае вам, вероятно, не нужно беспокоиться о том, что ваша история коммитов в приватной ветке будет нетронутой. Просто нажмите последующий коммит (см. «Как отменить публичный коммит» выше), а затем выполните squash-merge , чтобы скрыть историю.