Git - Как отменить последний коммит?

Git - Как отменить последний коммит?

В Git мы можем использоватьgit reset --soft HEAD~1, чтобы отменить последнюю фиксацию в local. (Принятые файлы не были отправлены на удаленный сервер git)

1. Тематическое исследование

git commit и обнаружил, что некоторые нежелательные файлыtarget/* зафиксированы случайно, я не выдавалgit push, есть идеи, как отменить фиксацию?

Терминал

$ git commit -m "test uncommit"

[master f5f3fa6] test uncommit
 3 files changed, 3603 insertions(+)
 create mode 100644 src/main/java/com/example/benchmark/BenchmarkMap.java
 create mode 100644 target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_forwardLoop_jmhTest.java
 create mode 100644 target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType.java

2. Решение

Эта команда gitgit reset --soft HEAD~1 отменит последнюю фиксацию, переместив ошибочно зафиксированные файлы обратно в промежуточную область.

Терминал

$ git reset --soft HEAD~1

$ git status
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
  (use "git reset HEAD ..." to unstage)

        new file:   src/main/java/com/example/benchmark/BenchmarkMap.java
        new file:   target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_forwardLoop_jmhTest.java
        new file:   target/generated-sources/annotations/com/example/benchmark/generated/BenchmarkForwardReverseLoop_jmhType.java

Готово.

Note
Вас может заинтересовать эта статья:list all committed files