Step 1
直接默认已经配置好了github密钥和gitlab密钥。
新手需要注意,密钥
xxx
公钥xxx.pub
是一一对应的关系.pub后缀代表公钥;密钥和公钥可以随意改变名字,只要保证不重名即可。
在~/.ssh文件夹下生成一个config配置文件,命令行
cd ~/.ssh
vim config
复制代码
在vim编辑界面输入
# gitlab
Host gitlab
User git
HostName gitlab.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_gitlab
# github
Host github
User git
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
复制代码
针对不同的host配置不同的认证方式:
HostName
—— 需要匹配的github
或者gitlab
地址;(gitlab
地址写全公司的完整域名,如:gitlab.companyName.com
)
IndentityFile
—— 认证的私钥地址
测试一下是否可以链接
ssh -T git@gitlab.xxx.com
Welcome to GitLab,xxx
复制代码
ssh -T git@github.com
Hi,xxx! You've successfully authenticated, but GitHub does not provide shell access.
复制代码
Step 2
设置全局username和email,因为大部分情况下,还是开发公司项目,所以配置全局git config 为公司的 username 和 email
$ git config --global user.name 'xxx' #公司账号名称
$ git config --global user.email 'xxx@companyName.com' #公司账号邮箱
复制代码
默认情况下,所以新clone下来新建立的,默认提交时都会以全局的username 和 email提交。
当需要换提交身份时,在提交目录下
$ git config --local user.name 'xxx' #github账号名称
$ git config --local user.email 'xxx@gmail.com' #github账号邮箱
复制代码
Step 3
linux/mac系统利用zsh可全局配置一个github的命令
vim .zshrc
复制代码
在zsh文件添加一行
...
alias github="git config --local user.name 'xxx' && git config --local user.email 'xxx@163.com' "
...
复制代码
注意
git config --list
复制代码
通过该命令可以查看该目录下git config,默认情况
...
user.name=xxx
user.email=xxx@company.com
...
复制代码
当执行step2里最后修改local config的命令时,会在最后加上user.name=newxxx
...
user.name=xxx
user.email=xxx@company.com
...
user.name=newxxx
复制代码
即local的config可以覆盖掉global的config
特别提醒,自动deploy的很多项目,可能某些情况下可能无法提供配置的yaml;例如hexo
,如和修改呢?找到他自动生成的git目录,切换到该分支下,修改.deploy_git
目录下的local git config即可实现修改提交身份。所以,通用解决方案就是找到git目录,修改当前目录的local config。