Git cli: 从用户名获取用户信息

有没有一种方法可以得到用户的名称,只给他们的用户名?

像这样的输出 git show <username>(我知道这不工作)

username: username
name: First Last
email: email@address

我知道我可以通过 GitHub api 调用来实现这一点,但是我更愿意将它保留在 CLI 中。

171159 次浏览

Git itself (the command line client, i.e. the "stupid content tracker") has no notion of user names, only GitHub does. In other words: there is no mapping of GitHub usernames to author/committer names and e-mails stored in a Git repository.

When creating a commit with Git it uses the configuration values of user.name (the real name) and user.email (email address). Those config values can be overridden on the console by setting and exporting the environment variables GIT_{COMMITTER,AUTHOR}_{NAME,EMAIL}.

Git doesn't know anything about GitHub's users, because GitHub is not part of Git. So you're only left with an API call to GitHub (I guess you could do that from the command line with a little scripting and make that a Git alias.)

git config user.name
git config user.email

I believe these are the commands you are looking for.

Here is where I found them

While its true that git commits don't have a specific field called "username", a git repo does have users, and the users do have names. ;) If what you want is the github username, then knittl's answer is right. But since your question asked about git cli and not github, here's how you get a git user's email address using the command line:

To see a list of all users in a git repo using the git cli:

git log --format="%an %ae" | sort | uniq

To search for a specific user by name, e.g., "John":

git log --format="%an %ae" | sort | uniq | grep -i john

git config --list

git config -l

will display your username and email together, along with other info

Try this

git config user.name

git config command stores and gives all the information.

git config -l

This commands gives you all the required info that you want.

You can change the information using

git config --global user.name "<Your-name>"

Similarly you can change many info shown to you using -l option.

You can try this to get infos like:

  • username: git config --get user.name
  • user email: git config --get user.email

There's nothing like "first name" and "last name" for the user.

Hope this will help.

Use this to see the logged in user (the actual git account):

git config credential.username

And as other answers the user email and user name (this is differenct from user credentials):

git config user.name
git config user.email

To see the list of all configs:

git config --list

Add my two cents, if you're using windows commnad line:

git config --list | findstr user.name will give username directly.

The findstr here is quite similar to grep in linux.

its So Simple You Just Copy and Past

For List Of All Config :- git config --list

and Also You Can Try :- git config -l

if you need to perticular Than You Can Use

user name :- git config user.name

user email :- git config user.email

If you need To add Config Than

user name :- git config user.name "name of user"

user email :- git config user.email "email of user"

Hope its HelpFull, Thank You

if you are using GitHub CLI (because git is already installed):

grep "user:" ~/.config/gh/hosts.yml

2022: Unless you manually set a token by hand, you need to use gh cli with git in order to be able to git push to your own GitHub repos. gh cli can be used to automatically set token credential use, as opposed to onetime (per login), or everytime (per action).

https://github.com/cli/cli

https://cli.github.com

Old thread, but since it's still the first hit on Google search, I'll add my two cents. Most answers are technically not correct. As @knittl indicated: to get the username, you'll have to query the service hosting your code, as git itself has no notion of users. You can configure variables like the user.name, but this can be anything and is not necessarily the user creating the commit.

For Github, a way to get the actual username is through their CLI tool gh. Once downloaded and authenticated, you can issue the following to get the username (using jq to retrieve the name):

gh api 'https://api.github.com/user' | jq .login