From: Kevin Daudt <me@ikke.info>
To: "Robert P. J. Day" <rpjday@crashcourse.ca>
Cc: Git Mailing list <git@vger.kernel.org>
Subject: Re: why does "git revert" commit even if i try to bail with ":q!"?
Date: Tue, 12 Mar 2019 19:14:28 +0100 [thread overview]
Message-ID: <20190312181428.GA6993@alpha> (raw)
In-Reply-To: <alpine.LFD.2.21.1903121317020.16391@localhost.localdomain>
On Tue, Mar 12, 2019 at 01:22:51PM -0400, Robert P. J. Day wrote:
>
> never noticed this before ... when i do a regular "git commit" and
> enter my "vi" edit session and change my mind, i can bail with ":q!",
> regardless of what i've set up as a commit message, and i'll see:
>
> Aborting commit due to empty commit message.
>
> however, i was just playing with "git revert" and, after i ran:
>
> $ git revert <commit SHA>
>
> i was dumped into another vi edit session:
>
> Revert "HTTP->HTTPS"
>
> This reverts commit 2965b41fd84a1a76f56984ecdf6c123d1992730f.
>
> # Please enter the commit message for your changes. Lines starting
> # with '#' will be ignored, and an empty message aborts the commit.
> #
> # On branch master
> # Your branch is up to date with 'rpjday/master'.
> #
> # Changes to be committed:
> # modified: book/01-introduction/sections/installing.asc
> #
>
> again, simulating that i changed my mind, i just typed ":q!", but
> the revert went ahead, anyway. i tried again, this time completely
> deleting all the lines from the commit msg (as the template
> suggested), but the revert *still* completed after typing ":q!".
>
> it was only after deleting all the lines and using ":wq" that the
> revert was cancelled:
>
> Aborting commit due to empty commit message.
>
> that seems ... inconsistent. am i misunderstanding something?
>
> rday
The only reason why `:q!` works just for comitting is because there is
no default message, so the final message ends up empty.
When you do things like git revert or git ocmmit --amend, there is
already a commit message, which you are then editing. When you quit
without saving, the existing message remains and git uses that.
vim has a command to let it exit with an error return code: `:cq`. This
makes git something went wrong with editing the message, causing git to
abort the commit.
next prev parent reply other threads:[~2019-03-12 18:14 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-12 17:22 why does "git revert" commit even if i try to bail with ":q!"? Robert P. J. Day
2019-03-12 17:53 ` Bryan Turner
2019-03-12 18:01 ` Robert P. J. Day
2019-03-12 18:19 ` Bryan Turner
2019-03-12 18:22 ` Robert P. J. Day
2019-03-12 18:14 ` Robert P. J. Day
2019-03-12 18:20 ` SZEDER Gábor
2019-03-12 18:20 ` Bryan Turner
2019-03-12 18:14 ` Kevin Daudt [this message]
2019-03-12 18:20 ` Robert P. J. Day
2019-03-12 18:24 ` Elijah Newren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190312181428.GA6993@alpha \
--to=me@ikke.info \
--cc=git@vger.kernel.org \
--cc=rpjday@crashcourse.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.