# modifying commit's author

7 messages from 2007-01-22 to 2007-01-23. Participants: J. Bruce Fields, Junio C Hamano, Robin Rosenberg, Johannes Sixt.
Thread: https://gitlist.dev/t/6480

## J. Bruce Fields, 2007-01-22 20:37

Subject: modifying commit's author
Message-ID: <20070122203734.GB23187@fieldses.org>
URL: https://gitlist.dev/e/20070122203734.GB23187%40fieldses.org

```
If I got the author wrong on a commit, is there a quick way to fix it
(e.g. by passing the right arguments or environment variables to commit
--amend)?

--b.

```

## Junio C Hamano, 2007-01-22 20:48

Subject: Re: modifying commit's author
Message-ID: <7v8xfuss84.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v8xfuss84.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20070122203734.GB23187@fieldses.org>

```
"J. Bruce Fields" <bfields@fieldses.org> writes:

> If I got the author wrong on a commit, is there a quick way to fix it
> (e.g. by passing the right arguments or environment variables to commit
> --amend)?

I usually do "format-patch -$n; reset --hard HEAD~$n; edit
00??-*.patch; am 00??-*.patch" myself when I got into that
situation to rebuild the branch, and haven't personally felt
need for an option to --amend, but it might make sense to teach
git-commit --amend to allow --author option to override it; I
think it currently ignores --author when given without erroring
out.

It may become a question if we would want to allow updating the
timestamp as well, but when people asked for --author I did not
hear from anybody who wanted to have --authortime, so not being
able to do so probably is Ok.

```

## Robin Rosenberg, 2007-01-22 20:50

Subject: Re: modifying commit's author
Message-ID: <200701222150.16465.robin.rosenberg.lists@dewire.com>
URL: https://gitlist.dev/e/200701222150.16465.robin.rosenberg.lists%40dewire.com
In-Reply-To: <20070122203734.GB23187@fieldses.org>

```
måndag 22 januari 2007 21:37 skrev J. Bruce Fields:
> If I got the author wrong on a commit, is there a quick way to fix it
> (e.g. by passing the right arguments or environment variables to commit
> --amend)?

Set these:
GIT_AUTHOR_EMAIL
GIT_AUTHOR_NAME
GIT_COMMITTER_EMAIL
GIT_COMMITTER_NAME

-- robin

```

## J. Bruce Fields, 2007-01-22 21:02

Subject: Re: modifying commit's author
Message-ID: <20070122210201.GA6614@fieldses.org>
URL: https://gitlist.dev/e/20070122210201.GA6614%40fieldses.org
In-Reply-To: <7v8xfuss84.fsf@assigned-by-dhcp.cox.net>

```
On Mon, Jan 22, 2007 at 12:48:27PM -0800, Junio C Hamano wrote:
> "J. Bruce Fields" <bfields@fieldses.org> writes:
> 
> > If I got the author wrong on a commit, is there a quick way to fix it
> > (e.g. by passing the right arguments or environment variables to commit
> > --amend)?
> 
> I usually do "format-patch -$n; reset --hard HEAD~$n; edit
> 00??-*.patch; am 00??-*.patch" myself when I got into that
> situation to rebuild the branch, and haven't personally felt
> need for an option to --amend, but it might make sense to teach
> git-commit --amend to allow --author option to override it; I
> think it currently ignores --author when given without erroring
> out.

That might be nice, but actually the git-am trick is more convenient
than I'd realized; thanks for the tip.

--b.

```

## Junio C Hamano, 2007-01-22 21:03

Subject: Re: modifying commit's author
Message-ID: <7vwt3ercyk.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vwt3ercyk.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <7v8xfuss84.fsf@assigned-by-dhcp.cox.net>

```
Junio C Hamano <junkio@cox.net> writes:

> "J. Bruce Fields" <bfields@fieldses.org> writes:
>
>> If I got the author wrong on a commit, is there a quick way to fix it
>> (e.g. by passing the right arguments or environment variables to commit
>> --amend)?
>
> I usually do "format-patch -$n; reset --hard HEAD~$n; edit
> 00??-*.patch; am 00??-*.patch" myself when I got into that
> situation to rebuild the branch, and haven't personally felt
> need for an option to --amend, but it might make sense to teach
> git-commit --amend to allow --author option to override it; I
> think it currently ignores --author when given without erroring
> out.
>
> It may become a question if we would want to allow updating the
> timestamp as well, but when people asked for --author I did not
> hear from anybody who wanted to have --authortime, so not being
> able to do so probably is Ok.

Untested, but something along this line.

-- >8 --
[PATCH] honor --author even with --amend, -C, and -c.

Earlier code discarded GIT_AUTHOR_DATE taken from the base
commit when --author was specified.  This was often wrong as
that use is likely to fix the spelling of author's name.

---

diff --git a/git-commit.sh b/git-commit.sh
index e23918c..6f4dcdb 100755
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -462,15 +462,7 @@ if test -f "$GIT_DIR/MERGE_HEAD" && test -z "$no_edit"; then
 fi >>"$GIT_DIR"/COMMIT_EDITMSG
 
 # Author
-if test '' != "$force_author"
-then
-	GIT_AUTHOR_NAME=`expr "z$force_author" : 'z\(.*[^ ]\) *<.*'` &&
-	GIT_AUTHOR_EMAIL=`expr "z$force_author" : '.*\(<.*\)'` &&
-	test '' != "$GIT_AUTHOR_NAME" &&
-	test '' != "$GIT_AUTHOR_EMAIL" ||
-	die "malformed --author parameter"
-	export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
-elif test '' != "$use_commit"
+if test '' != "$use_commit"
 then
 	pick_author_script='
 	/^author /{
@@ -501,6 +493,15 @@ then
 	export GIT_AUTHOR_EMAIL
 	export GIT_AUTHOR_DATE
 fi
+if test '' != "$force_author"
+then
+	GIT_AUTHOR_NAME=`expr "z$force_author" : 'z\(.*[^ ]\) *<.*'` &&
+	GIT_AUTHOR_EMAIL=`expr "z$force_author" : '.*\(<.*\)'` &&
+	test '' != "$GIT_AUTHOR_NAME" &&
+	test '' != "$GIT_AUTHOR_EMAIL" ||
+	die "malformed --author parameter"
+	export GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL
+fi
 
 PARENTS="-p HEAD"
 if test -z "$initial_commit"

```

## J. Bruce Fields, 2007-01-22 21:04

Subject: Re: modifying commit's author
Message-ID: <20070122210400.GB6614@fieldses.org>
URL: https://gitlist.dev/e/20070122210400.GB6614%40fieldses.org
In-Reply-To: <200701222150.16465.robin.rosenberg.lists@dewire.com>

```
On Mon, Jan 22, 2007 at 09:50:16PM +0100, Robin Rosenberg wrote:
> måndag 22 januari 2007 21:37 skrev J. Bruce Fields:
> > If I got the author wrong on a commit, is there a quick way to fix it
> > (e.g. by passing the right arguments or environment variables to commit
> > --amend)?
> 
> Set these:
> GIT_AUTHOR_EMAIL
> GIT_AUTHOR_NAME
> GIT_COMMITTER_EMAIL
> GIT_COMMITTER_NAME

That doesn't seem to work in this case, since with the commands that
take an existing commit as a model (like commit --amend and commit -c),
the author information from the existing commit overrides those
environment variables.  Which is normally what you want.

--b.

```

## Johannes Sixt, 2007-01-23 07:38

Subject: Re: modifying commit's author
Message-ID: <45B5BB64.EC3AD29E@eudaptics.com>
URL: https://gitlist.dev/e/45B5BB64.EC3AD29E%40eudaptics.com
In-Reply-To: <20070122203734.GB23187@fieldses.org>

```
"J. Bruce Fields" wrote:
> 
> If I got the author wrong on a commit, is there a quick way to fix it
> (e.g. by passing the right arguments or environment variables to commit
> --amend)?

Use cogito: cg commit --amend -e
You can edit the author name+email in the commit message.

-- Hannes

```
