账号管理

Git本地仓库初始化
1)选择一个目录存放项目
2)Git Bash Here
3)git init
此时会生成一个.git的隐藏文件,存放此项目相关配置信息,例如:项目级别的账号信息就存放在.git/config文件中。
添加项目级别账号

git config user.name jack
git config user.email jack@git.com

查看config文件信息

cat D:/Git/gitRepository01/.git/config

git guest用户登录 git账户_git

一般我们设置用户级别账号

git config --global user.name aaron
git config --global user.email aaron@git.com

此时账号信息保存在系统目录中,比如我现在的:C:/Users/Aaron/.gitconfig

cat ~/.gitconfig

git guest用户登录 git账户_git guest用户登录_02


~此时的家目录就是windows用户aaron的目录。并且用aaron只能创建一个git系统级别用户,后一个会覆盖前一个。

查看全局配置还可以使用

git config --global --list
可简写为:
git config --global -l
同理:
git config --local -l
git config --system -l

查看所有配置信息:
git config -l
git config -l --show-origin

#查看当前Git使用账号
You can also check what Git thinks a specific key’s value is by typing git config <key>:
git config user.name
git config --show-origin user.name

清除全局配置

git config --global --unset user.name
git config --global --unset user.email

小结

1)项目级别账号,优先级最高。存放在项目的.git/config文件中;
2)用户级别账号,优先级次之。存放在系统账号(例如Windows的aaron)C:/Users/Aaron/.gitconfig文件中;
3)系统级别账号,优先级最低。存放在git安装目录etc/gitconfig文件中。

#查看配置
git config [--local/global/system] -l

#编辑配置文件
git config [--local/global/system] -e

#添加账号
git config [--local/global/system] user.name xxx
git config [--local/global/system] user.email xxx

#增加/获取/删除配置,默认是local。section,key,value一个都不可以少。
git config [--local/global/system] [--add/get/unset] section.key value

多用户配置

应用场景

我的私人电脑既要用来提交我的个人项目到GitHub上,也需要提交公司项目到GitLab上。配置ssh登录。
GitHub项目地址:
https://github.com/AaronFeng33/trytry.git

setp1.创建GitHub的SSH

1)创建本地ssh

ssh-keygen -t rsa -C "aaron@git.com"

参数含义:
-t 指定密钥类型,例如:rsa
-C 设置注释文字,例如:邮箱
-f 指定密钥文件存储文件名

git guest用户登录 git账户_优先级_03


注:

1)输入保存路径和文件的时候,直接回车,默认即可,默认保存在.ssh/id_rsa;不过为了区分github和gitlab,故而改写成:/c/Users/Aaron/.ssh/id_rsa_github,改了之后,需要重新对私钥和远程做对接。

2)输入passphrase的时候,直接回车,不需要密码。此处输入的是私钥密码,也可输入,然后交给代理管理。

创建好之后的文件

git guest用户登录 git账户_github_04

2)GitHub上添加ssh key

登录GitHub,点击右上角头像,选择settings,选择SSH and GPG keys,然后添加新的SSH key即可。title自定义,key复制本地.ssh/id_rsa.pub里面的内容。

git guest用户登录 git账户_git guest用户登录_05

3)验证

ssh -T git@github.com

git guest用户登录 git账户_git guest用户登录_06

setp2.创建GitLab的SSH

同GitHub创建SSH一样即可。

setp3.添加私钥到keychain
ssh-add ~/.ssh/id_rsa_github
ssh-add ~/.ssh/id_rsa_gitlab

添加完毕后,可以通过执行 ssh-add -l 验证下

如果出现:Could not open a connection to your authentication agent.错误提示,执行ssh-agent bash然后再添加。

setp4.管理密钥

创建一个密钥配置文件,通过该文件,实现根据仓库的 remote 链接地址自动选择。

vim ~/.ssh/config

配置内容如下:

HostName github.com
User aaron
IdentityFile ~/.ssh/id_rsa_github

Host gitlab
HostName gitlab.mygitlab.com
User FC
IdentityFile ~/.ssh/id_rsa_gitlab

注:
Host:仓库网站的别名,可自定义
HostName:仓库网站的域名(PS:IP 地址应该也可以)
User:仓库网站上的用户名
IdentityFile:私钥的绝对路径