איך לבטל את ה-commits המקומיים האחרונים שביצעתי בעזרת git?

ביצעתי מספר שינויים ב-repository שלי וביצעתי commit עליהם. אולם עוד לא דחפתי את השינויים ל-remote, כלומר רצף הפקודות שביצעתי הוא:

> git add <files>
> git commit -m "Adding files"

איך אני יכול לבטל את ה-commit האחרון ולחזור למצב הרגיל?
תודה רבה על העזרה.

רצף הפעולות הוא:

> git commit -m "Terrible commit, Oops..."                 # (1)
> git reset HEAD~                                          # (2)

הסבר:

  1. ביצעת commit שאתה מעוניין לבטל.
  2. נבטל את ה-commit האחרון. שים לב כי פקודה זו לא פוגעת בעץ השינויים שלך אלא רק מוחקת את ה-commit האחרון שביצעת ומשאירה את השינויים שביצעת במצב של unstaged, כלומר כיאלו לא ביצעת עליהם git add. אם אתה מעוניין רק להוסיף מספר שינויים ל-commit האחרון או לשנות את הודעת ה-commit, אתה יכול להשתמש בפקודה git reset --soft HEAD~ שהיא כמו הפקודה git reset HEAD~ אבל משאירה את השינויים במצב של staged.
    אם אתה עובד ב-DOS אז במקום להשתמש בפקודה git reset --soft HEAD^ אתה צריך להריץ git reset --soft HEAD~1 שכן התו ^ (כובע) הוא תו מיוחד ב-DOS.

מקווה שמובן ועוזר.