Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

git commit --author doesn't work when global not set

Tags:

git

working on a lab machine which has a shared login. don't want to set global git config parameters.

git commit --author="username <email>" 

This used to work on older git versions. now it produces this error:

*** Please tell me who you are.

Run

  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'blah@blah.(none)')

Any thoughts?

like image 583
richmb Avatar asked Apr 16 '15 20:04

richmb


2 Answers

What if you set the git config info just for the current repository?

  git config user.email "[email protected]"
  git config user.name "Your Name"

EDIT Based on OP comment a possible solution is:

GIT_AUTHOR_EMAIL="[email protected]" && GIT_AUTHOR_NAME="Your Name" && git commit
like image 74
Aguardientico Avatar answered Nov 03 '22 19:11

Aguardientico


First, With Git 2.29 (Q4 2020), the error message is clearer.

See commit 9ed104e (21 Aug 2020) by Junio C Hamano (gitster).
(Merged by Junio C Hamano -- gitster -- in commit e9bd00a, 31 Aug 2020)

ident: say whose identity is missing when giving user.name hint

If user.name and user.email have not been configured and the user invokes:

git commit --author=...  

without specifying the committer identity, then Git errors out with a message asking the user to configure user.name and user.email but doesn't tell the user which attribution was missing.

This can be confusing for a user new to Git who isn't aware of the distinction between user, author, and committer.

Give such users a bit more help by extending the error message to also say which attribution is expected.

The error message will clearly state:

Author identity unknown
# or
Committer identity unknown

Second, from OP's comment:

Other people use the machine and the same repo. I guess I could set up the git config and then remove the configuration when I'm done

You can wrap the git command and forcing each used to identify themselves (once per shell session).
See "Best pracitces for multi-developer Git for single user application" and my project VonC/gitw.

like image 30
VonC Avatar answered Nov 03 '22 18:11

VonC