同一台电脑使用 gitlab 和 github 配置
Git 客户端与服务器端的通信支持多种协议,ssh 最常用。ssh的公钥登录流程:用户将自己的公钥存储在远程主机,登录时,远程主机会向用户发送一条消息,用户用自己的私钥加密后,再发给服务器。远程主机用事先存储的公钥进行解密,如果成功,就证明用户可信。
生成公私密钥
用户必须事先提供自己的公钥给服务器,如果没有,可以用 ssh-keygen
命令生成。该命令会生成两个文件(公钥 and 私钥),默认路径在用户根目录下的.ssh
文件夹中。
注意: 默认生成的文件名是 id_rsa/id_rsa.pub
,由于这里需要两套密钥,所以需为它们分别命名,以防止互相覆盖。
执行下面命令生成密钥:
ssh-keygen -t rsa -C "注册 gitlab 账户的邮箱"
提示要输入名称时输入 id_rsa_gitlab
ssh-keygen -t rsa -C "注册 github 账户的邮箱"
提示要输入名称时输入 id_rsa_github
提供公钥给服务器
- 复制
~/.ssh/id_rsa_gitlab.pub
文件内容,进入gitlab / profile / SSH Keys,将公钥内容添加至 gitlab 。 - 复制
~/.ssh/id_rsa_github.pub
文件内容,进入github / setting / SSH and GPG keys / New SSH key 将公钥内容添加至 github 。
更新SSH配置
SSH 配置信息加载顺序如下:
- 命令行配置参数
- 用户级别的配置文件
~/.ssh/config
- 系统级别的配置文件
/etc/ssh/ssh_config
根据我们实际情况,更新用户级别配置信息即可,打开 SSH 客户端配置文件 ~/.ssh/config
增加配置项,如果没有就创建一个(是文本文件)。
SSH配置项有很多,详见:https://man.openbsd.org/ssh_config 或r https://www.ssh.com/ssh/config/
在配置文件中加入以下内容
Host github.com
HostName github.com
User githubuser@xyz.com
IdentityFile ~/.ssh/id_rsa_github
Host gitlab.com
HostName gitlab.com
User gitlabuser@xyz.com
IdentityFile ~/.ssh/id_rsa_gitlab
配置仓库用户信息
Git 配置信息也有三个地方可以存储,根据加载顺序依次为:
/etc/gitconfig
文件: 包含系统上每一个用户及他们仓库的通用配置。 如果使用带有 --system 选项的 git config 时,它会从此文件读写配置变量。~/.gitconfig
或~/.config/git/config
文件只针对当前用户。 可以传递 --global 选项让 Git 读写此文件。- 当前使用仓库的 Git 目录中的 config 文件(就是
.git/config
)
不同仓库链接不同的服务器,所用的git用户信息也不同。可以把常用的git用户信息配置到 ~/.gitconfig
中,不常用的我们在仓库中单独配置。以常用 gitlab 为例:
git config --global user.name "githubuser"
git config --global user.email "githubuser@xyz.com"
进入本地 github 仓库配置 git 用户信息
~/github$ git config --local user.name "githubuser"
~/github$ git config --local user.email "githubuser@xyz.com"
写在后面
本文地址:https://www.cnblogs.com/kelsen/p/8342239.html
如果您有任何建议或疑问请在下面留言交流。
同一台电脑使用 gitlab 和 github 配置的更多相关文章
- 同一台电脑上个人的github账户如何与公司的gitlab账户共存
前些天,写了篇博客 开发环境之git:团队协作git工作流与常用命令. 主要是回顾其中的第一小节基本配置. 但是对于很多程序员而言,我们不仅有公司的gitlab账户做公司的业务,也会有自己个人的git ...
- gitlab 和 github 配置 SSH Keys
gitlab 文档上给了很好的配置的例子:https://gitlab.com/help/ssh/README#locating-an-existing-ssh-key-pair 针对mac 下的使用 ...
- 201709012工作日记--一台电脑创建两个Github账户上传代码
1. 在一台主机上面使用多个GitHub账号 有时候,我们需要将个人账号和公司账号区分,这时候我们就会需要在一台电脑上使用2个不同的git账号. 2. 上传文件 http://blog.csdn.ne ...
- 关于一台电脑使用多个GitHub账户管理代码的记录
@参考原文 记录这个操作是因为需要将一些代码放出去到公共仓库上以便使用github pages线上预览今天页面的功能,但是碰到了一个很狗血的问题,虽然最后莫名其妙的解决了,但还是不知缘由,希望能在评论 ...
- 一台电脑关联多个git账号
一台电脑连接多个git账号 现需要一台电脑连接gitlab,github,码云,之前的操作时,用公司账号,在这几个地方都注册一遍,导致自己就有两类号,一个自己的,一个公司的,这样也是可以,但总是不太好 ...
- 同一台电脑同时使用gitHub和gitLab
工作中我们有时可能会在同一台电脑上使用多个git账号,例如:公司的gitLab账号,个人的gitHub账号.怎样才能在使用gitlab与github时,切换成对应的账号,并且免密?这时我们需要使用ss ...
- 如何在同一台电脑上使用两个github账户(亲测有效)
1 前言 由于有两个github账号,要在同一台电脑上同步代码,需要给每一个账号添加一个SSH public key,此时推送时git push origin,不知道是哪个账号的远程仓库名称,所以需要 ...
- git学习笔记:一台电脑上配置两个git账户
如何在一台电脑上配置两个git账户,现在云端仓库很多,有开源中国的 gitee.com 微软的 github.com 还有 gitlab.com 和 bitbucket.org 等等,下面是具体步骤 ...
- 怎样在同一台电脑使用不同的账号提交到同一个github仓库
近期这段时间使用github.有时在公司办公,想要用git提交代码到自己的github仓库,提交是显示的作者是自己在公司的账户.而不是自己的github账户.这就相当于提交到github的代码不是自己 ...
随机推荐
- Struts2-整理笔记(四)Action生命周期、如何获取参数(3种)、集合类型参数封装
一.Action生命周期 每次请求到来时,都会创建一个新的Action实例 Action是线程安全的,可以使用成员变量接收参数 二.获取参数的方式(3种) 1.属性驱动获得参数 每次请求Action时 ...
- C++ qsort
使用qsort 需要包含头文件#include<algorithm> 例子: class Wooden{ public: int weight; int length; bool flag ...
- 最短的IE判断var ie=!-[1,]分析
以前最短的IE判定借助于IE不支持垂直制表符的特性搞出来的. 复制代码代码如下: var ie = !+"\v1"; 仅仅需要7bytes!参见这篇文章,<32 byte ...
- c#代码技巧
1.#region #endregion 1.#region 是一个分块预处理命令,主要用于编辑代码分段,在编译时会自动屏蔽,同时该指令可以使代码在VS代码编辑器中折叠或展开: 2.#region必须 ...
- Url Rewrite 再说Url 重写
前几天看到园子里一篇关于 Url 重写的文章<获取ISAPI_Rewrite重写后的URL>, URL-Rewrite 这项技术早已不是一项新技术了,这个话题也已经被很多人讨论过多次.搜索 ...
- Node.js 蚕食计划(二)—— 使用 http 模块搭建 Web 服务器
Node.js 开发的目的就是为了用 JavaScript 编写 Web 服务器程序 这次就来介绍用 http 模块搭建服务器 一.项目构建 每个 Node 程序都可以看作一个模块,而每个模块都应该有 ...
- 利用layer实现MVC页面数据互交提示弹框
需求说明: 一个表单页面,点击提交之后,进入后台进行一系列数据交互,然后将交互信息返回至页面中,并以弹框形式展示 应用场景: 添加.修改.删除数据后,返回数据操作是否成功,以及一些其他信息 前期准备: ...
- MySQL优化四 索引优化
索引为什么能提高数据访问性能? 很多人只知道索引能够提高数据库的性能,但并不是特别了解其原理,其实我们可以用一个生活中的示例来理解. 我们让一位不太懂计算机的朋友去图书馆确认一本叫做<MySQL ...
- 只要发生ajax请求时加载旋转的按钮
定义一个变量 全局 c 只要发生ajax时给c++ 当ajax请求success或者error时,c--; 对加载的按钮添加个事件 监听 c 如果c得值没变化 则隐藏按钮 如果变化了则显示 ...
- go语言 前言
1什么是Go? Go是一门开源.并发支持.具有垃圾回收机制.编译性系统编程语言.在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点.被称为21世纪的C语言.Go语言已经成为云计算.云存储时代 ...