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

Re: Query on git commit amend

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 6, 2011, 21:00 UTC
Message-ID
<7vk469fm9j.fsf@alter.siamese.dyndns.org>
In-Reply-To
<7vobvlfowk.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 10 quoted lines
> I almost always use
>
>     $ EDITOR=: git commit --amend
>
> when rewriting the contents without updating the message, but I think
> we should allow people to say:
>
>     $ git commit --amend --no-edit
>
> which is accepted from the command line but is not honoured.
And this should fix it (only lightly tested).
-- >8 --
Subject: [PATCH] commit: honor --no-edit

After making fixes to the contents to be committed, it is not unusual to update the current commit without rewording the message. Idioms to do tell "commit --amend" that we do not need an editor have been:

    $ EDITOR=: git commit --amend
    $ git commit --amend -C HEAD
but that was only because a more natural
    $ git commit --amend --no-edit
did not honour "--no-edit" option.    
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 builtin/commit.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/builtin/commit.c b/builtin/commit.c
index 8f2bebe..48bea8f 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -81,7 +81,8 @@ static const char *template_file;
 static const char *author_message, *author_message_buffer;
 static char *edit_message, *use_message;
 static char *fixup_message, *squash_message;
-static int all, edit_flag, also, interactive, patch_interactive, only, amend, signoff;
+static int all, also, interactive, patch_interactive, only, amend, signoff;
+static int edit_flag = -1; /* unspecified */
 static int quiet, verbose, no_verify, allow_empty, dry_run, renew_authorship;
 static int no_post_rewrite, allow_empty_message;
 static char *untracked_files_arg, *force_date, *ignore_submodule_arg;
@@ -141,7 +142,7 @@ static struct option builtin_commit_options[] = {
 	OPT_BOOLEAN(0, "reset-author", &renew_authorship, "the commit is authored by me now (used with -C-c/--amend)"),
 	OPT_BOOLEAN('s', "signoff", &signoff, "add Signed-off-by:"),
 	OPT_FILENAME('t', "template", &template_file, "use specified template file"),
-	OPT_BOOLEAN('e', "edit", &edit_flag, "force edit of commit"),
+	OPT_BOOL('e', "edit", &edit_flag, "force edit of commit"),
 	OPT_STRING(0, "cleanup", &cleanup_arg, "default", "how to strip spaces and #comments from message"),
 	OPT_BOOLEAN(0, "status", &include_status, "include status in commit message template"),
 	/* end commit message options */
@@ -1020,8 +1021,8 @@ static int parse_and_validate_options(int argc, const char *argv[],
 
 	if (logfile || message.len || use_message || fixup_message)
 		use_editor = 0;
-	if (edit_flag)
-		use_editor = 1;
+	if (0 <= edit_flag)
+		use_editor = edit_flag;
 	if (!use_editor)
 		setenv("GIT_EDITOR", ":", 1);
 
-- 
1.7.8.157.g03e55
Previous: Junio C HamanoNext: Jonathan Nieder
Message 11 of 27 in “Query on git commit amend”
  1. Viresh KumarDec 6, 2011
  2. Konstantin KhomoutovDec 6, 2011
  3. Dirk SüsserottDec 6, 2011
  4. Johannes SixtDec 6, 2011
  5. Viresh KumarDec 6, 2011
  6. Viresh KumarDec 6, 2011
  7. Vijay LakshminarayananDec 6, 2011
  8. Jeff KingDec 6, 2011
  9. Vijay LakshminarayananDec 7, 2011
  10. Junio C HamanoDec 6, 2011
  11. Junio C HamanoDec 6, 2011
  12. 0/4 Re: commit: honor --no-editJonathan Nieder, Dec 7, 2011
  13. 1/4 test: add missing "&&" after echo commandJonathan Nieder, Dec 7, 2011
  14. Jeff KingDec 7, 2011
  15. Jeff KingDec 7, 2011
  16. 2/4 test: remove a porcelain test that hard-codes commit namesJonathan Nieder, Dec 7, 2011
  17. 3/4 t7501 (commit): modernize styleJonathan Nieder, Dec 7, 2011
  18. 4/4 test: commit --amend should honor --no-editJonathan Nieder, Dec 7, 2011
  19. Vijay LakshminarayananDec 7, 2011
  20. Viresh KumarDec 7, 2011
  21. Björn SteinbrinkDec 7, 2011
  22. Viresh KumarDec 7, 2011
  23. Vijay LakshminarayananDec 7, 2011
  24. Junio C HamanoDec 8, 2011
  25. Viresh KumarDec 9, 2011
  26. Viresh KumarDec 8, 2011
  27. Viresh KumarDec 8, 2011

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.