研艺影楼网站建设,it外包公司怎么接项目,网站建设 成都今网科技,青州网站网站建设目录 多个托管平台GIt账户如何配置SSH 路由配置验证 用户名邮箱配置验证 多个托管平台GIt账户如何配置
通常情况#xff0c;公司会搭建自己的gitlab代码托管服务或者将代码托管到第三方平台上#xff0c;而我们自己的开源项目通常托管到Github上#xff0c;每个托管平台都有… 目录 多个托管平台GIt账户如何配置SSH 路由配置验证 用户名邮箱配置验证 多个托管平台GIt账户如何配置
通常情况公司会搭建自己的gitlab代码托管服务或者将代码托管到第三方平台上而我们自己的开源项目通常托管到Github上每个托管平台都有对应的Git账户。默认情况下一台电脑对应一个GIt账户这时候对不同托管平台上代码仓库的管理就变得很不方便。接下来我将会以两个账号为例进行相应的配置以达到对不同托管平台上的仓库进行丝滑的操作。
SSH 路由配置
首先通常我们会在GIt上配置SSH Key使用SSH地址代替HTTP地址这样在下载或上传代码时就不需要输入账号密码了。那么多个托管平台呢一种方式是全都使用同一个公私钥对但是这样不是很安全一个私钥不小心泄漏了全部平台上的账号都将面临安全风险。一种更好的方式是为不同的账号配置不同的秘钥对再修改$HOME/.ssh/config文件配置相应的ssh路由策略
Host github.comPort 22User gitHostName github.comPreferredAuthentications publickeyIdentityFile ~/.ssh/github_rsaHost 192.168.10.136Port 22User gitHostName 192.168.10.136PreferredAuthentications publickeyIdentityFile ~/.ssh/gitlab_home上面的配置文件中第一项是配置github的IdentityFile是你存放私钥的文件路径。 第二项是我在内网搭建的gitlab服务下面解释一下
Host是你GIt的外部访问地址可以是ip也可以是域名。HosName是你真实访问的服务地址。
对于Host如果不清楚的话可以进到你随便的一个仓库下输入git config --local -l 查看下仓库的配置找到这一项remote.origin.urlssh://git192.168.10.136:22/mytest.git可以看到这个ip是和Host里面对应的你也可以更改仓库的origin将这个ip改成任意一个你喜欢的只要和上述配置中的Host对应就行。
验证
使用ssh -T验证下是否配置成功
ssh -T github.com
ssh -T 192.168.10.136如果配置成功则会返回类似如下信息
Hi xxx! Youve successfully authenticated, but GitHub does not provide shell access.用户名邮箱配置
ssh key已经配置好了接下来我们clone了代码实现了一段新的功能需要push到远程仓库一般来说我们会在全局配置项添加用户和邮箱
git config --global user.email “youexample.com”
git config --global user.name “Your Name”但是在公司的仓库你可能使用自己真实的名字和工作邮箱在github可能使用的是昵称和私有的个人邮箱。一种方式是你可以在每个仓库下分别设置local级别的配置来分别设置名称和邮箱。但是这样太麻烦更方便的做法是根据托管服务分别适配修改$HOME/.gitconfig文件添加如下配置
[includeIf hasconfig:remote.*.url:git192.168.10.136:*/**]path ~/.gitconfig.gitlab[includeIf hasconfig:remote.*.url:gitgithub.com:*/**]path ~/.gitconfig.github在~/.gitconfig.github和 ~/.gitconfig.gitlab文件中分别配置
[user]name yournameemail yournamexxxx.com这样github会使用~/.gitconfig.github的配置而私有gitlab则会使用~/.gitconfig.gitlab中的配置。 另外如果是使用http的话这样配
[includeIf hasconfig:remote.*.url:http://192.168.10.136:80/**]path ~/.gitconfig.gitlab验证
分别进到不用托管平台下的代码仓库中查看local的git配置看看是否和配置文件中的一致
git config user.name
git config user.email