git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: How to prevent empty git commit --amend

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
Jan 13, 2015, 11:20 UTC
Message-ID
<54B4FF90.2050306@drmicha.warpmail.net>
In-Reply-To
<CA+iO_8niTScwtYVRV-5wBNHOzr08k=1Vug0yH3+vQ-Y9GgyJKg@mail.gmail.com>
Ivo Anjo schrieb am 13.01.2015 um 11:22:
Show 22 quoted lines
> Hello Daniel,
> 
> Thanks for your answer!
> 
> My issue is not with cancelling the amend commit, is that because the
> amend commit already lists changes to the files I am working on (those
> changes that already went in the commit I was ammending), I don't
> realize that I forgot to add what I changed. For instance:
> 
> $ echo "Hello" >> readme.txt
> $ git add readme.txt
> $ git commit -m "Add readme"
> 
> $ echo "World" >> readme.txt
> $ git commit --amend
> 
> now if I just save and close the editor git will say it committed
> successfully (which it did), but in reality nothing at all happened.
> 
> Of course I can check the status or some other things before/after the
> amend commit, but since end up doing this error sometimes I was hoping
> I could set up git to stop me from doing it.

"git commit --amend" is (also) the way to edit the last commit message, and for that you need to be able to do an "empty" amend.

In your example above, git will also tell you that you have unstaged changes to readme.txt.

If that isn't enough, you can use "-v" to display the diff in the editor (and remove it).

Michael
Previous: Ivo AnjoNext: Matthieu Moy
Message 4 of 30 in “How to prevent empty git commit --amend”
  1. Ivo AnjoJan 13, 2015
  2. Daniel Knittl-FrankJan 13, 2015
  3. Ivo AnjoJan 13, 2015
  4. Michael J GruberJan 13, 2015
  5. Matthieu MoyJan 14, 2015
  6. Ivo AnjoJan 14, 2015
  7. Matthieu MoyJan 14, 2015
  8. Junio C HamanoJan 14, 2015
  9. Junio C HamanoJan 14, 2015
  10. commit/status: show the index-worktree with -v -vMichael J Gruber, Jan 15, 2015
  11. Junio C HamanoJan 15, 2015
  12. Junio C HamanoJan 15, 2015
  13. Michael J GruberJan 16, 2015
  14. 0/2 More diffs for commit/statusMichael J Gruber, Mar 3, 2015
  15. 1/2 t7508: test git status -vMichael J Gruber, Mar 3, 2015
  16. Junio C HamanoMar 3, 2015
  17. Junio C HamanoMar 3, 2015
  18. Michael J GruberMar 4, 2015
  19. Junio C HamanoMar 4, 2015
  20. 2/2 commit/status: show the index-worktree diff with -v -vMichael J Gruber, Mar 3, 2015
  21. Junio C HamanoMar 3, 2015
  22. Michael J GruberMar 4, 2015
  23. Junio C HamanoMar 4, 2015
  24. 0/3 More diffs for commit/statusMichael J Gruber, Mar 5, 2015
  25. Junio C HamanoMar 5, 2015
  26. Junio C HamanoMar 5, 2015
  27. Junio C HamanoMar 5, 2015
  28. 1/3 t7508: .gitignore 'expect' and 'output' filesMichael J Gruber, Mar 5, 2015
  29. 2/3 t7508: test git status -vMichael J Gruber, Mar 5, 2015
  30. 3/3 commit/status: show the index-worktree diff with -v -vMichael J Gruber, Mar 5, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.