How to prevent empty git commit --amend

4 messages, 3 authors, 2016-06-15 · open the first message on its own page

How to prevent empty git commit --amend

From: Ivo Anjo <hidden>
Date: 2016-06-15 23:03:27

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 :)

Thanks for your time!
Ivo Anjo

Re: How to prevent empty git commit --amend

From: Daniel Knittl-Frank <hidden>
Date: 2016-06-15 23:03:28

On Tue, Jan 13, 2015 at 9:56 AM, Ivo Anjo [off-list ref] 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

Re: How to prevent empty git commit --amend

From: Ivo Anjo <hidden>
Date: 2016-06-15 23:03:28

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
[off-list ref] wrote:
On Tue, Jan 13, 2015 at 9:56 AM, Ivo Anjo [off-list ref] wrote:
quoted
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

Re: How to prevent empty git commit --amend

From: Michael J Gruber <hidden>
Date: 2016-06-15 23:03:28

Ivo Anjo schrieb am 13.01.2015 um 11:22:
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help