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

Re: How to prevent empty git commit --amend

From
Ivo Anjo <ivo.anjo@ist.utl.pt>
Date
Jan 13, 2015, 10:22 UTC
Message-ID
<CA+iO_8niTScwtYVRV-5wBNHOzr08k=1Vug0yH3+vQ-Y9GgyJKg@mail.gmail.com>
In-Reply-To
<CACx-yZ12mn-EyR5Mx9rmACLtyeYWRdyef4jDqdFAPzeQDm03ug@mail.gmail.com>
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.

Ivo Anjo

On Tue, Jan 13, 2015 at 8:59 AM, Daniel Knittl-Frank <knittl89@googlemail.com> wrote:

Show 32 quoted lines
>
> On Tue, Jan 13, 2015 at 9:56 AM, Ivo Anjo <ivo.anjo@ist.utl.pt> wrote:
> > Hello,
> >
> > I sometimes get a bit distracted when making amends. Once or twice per
> > week I do a commit, then realize I added something I shouldn't, or
> > forgot to add a line here or there, and then I do a git commit --amend
> > to fix it.
> >
> > The thing is, a lot of times I forget to stage the modifications I did.
> > And here is my issue: *git commit* refuses to work when there's
> > nothing to commit, but *git commit --amend* happily pops up the editor
> > and says you have committed something when you did not add/change
> > anything.
> >
> > Is there a way to prevent a *git commit --amend** with nothing to
> > commit from working?
> > If not, I would like to suggest that this feature would be very helpful :)
>
> Hi Ivo,
>
> simply delete all text from the commit editor and exit/save the empty
> file. This will abort the commit.
>
> The same logic applies to git rebase --interactive: deleting
> everything will do nothing.
>
> Regards,
> Daniel
>
> --
> typed with http://neo-layout.org
Previous: Daniel Knittl-FrankNext: Michael J Gruber
Message 3 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.