Commit Without Setting User Name and Email

git

Solution

(This occurred to me after suggesting the long version with the environment variables—git commit wants to set both an author and a committer, and `--author` only overrides the former.)

All git commands take `-c` arguments before the action verb to set temporary configuration data, so that's the perfect place for this:

git -c user.name='Paul Draper' -c user.email='my@email.org' commit -m '...'

So in this case `-c` is part of the `git` command, not the `commit` subcommand.

Problem

I try to `commit` like this: ``` git commit --author='Paul Draper <my@email.org>' -m 'My commit message' ``` but I get: ``` *** Please tell me who you are. Run git config --global user.email "you@example.com" git config --global user.name "Your Name" to set your account's default identity. Omit --global to set the identity only in this repository. ``` I can set these, but I am on a shared box, and I would have to (want to) unset them afterwards: ``` git config user.name 'Paul Draper' git config user.email 'my@email.org' git commit -m 'My commit message' git config --unset user.name git config --unset user.email ``` That's a lot of lines for one `commit`! Is there shorter way?

Original source