聊下 git 多账户问题
git 多账户问题
标签(空格分隔):git github gitlab git多账户
- 背景
- git 多账号配置
- ssh 多密钥对配置
背景
在使用 git 的时候我们都会面临多账户问题,比较常见的就是公司内部的 gitlab,开源平台 github ,我们都需要在一台电脑上同时使用,这需要解决两个问题。
git 多账号配置
git config --global user.name 设置全局用户名
git config --global user.email 设计全局邮箱
git config --global 设置默认会作用所有的 git repository ,当我们分别 git clone 了 gitlab 、github 的 repository 时,需要分别为每个 git clone 下来的 repository 设置当前仓库的 user.name 、user.email 。
这个问题请参见本人的 git 系列文章 -> 聊下 git 使用前的注意事项
ssh 多密钥对配置
我们都知道 git 是基于 ssh 协议,git 通过 ssh agent 建立与远程链接和验证。
ssh 通过 rsa 私钥进行加密传输到 git server ,git server 再通过查找对应的 rsa pub key 进行解密,以验证是否当前提交过来的合法信息。
我们通过 ssh-keygen 分别创建不同的 rsa 密钥对,如果你没有特殊处理过公司内部私有的密钥对一般都是默认的名称 id_rsa、id_rsa.pub 。
如果我们是第一次创建 git 账号,第一次可以纯粹默认的创建过程
ssh-keygen -t rsa
一路 enter 回车,然后配置好公司内部的 gitlab ,正常提交。
然后再通过 ssh-keygen 创建的时候另起一个名字,比如 github 、github.pub 一对,这和创建默认的 id 、id.pub 没什么区别。
然后通过 ssh-add 将新创建的 github 专用密钥添加进 ssh-agent cache 中。
ssh-add ~/.ssh/github
然后查看 ssh agent 密钥 cache 列表。
ssh-add -l

再将 github.pub 公钥配置到我们的 github 的账号中就可以了。
然后就能正常使用gitlab、github 了。如果你不放心怕两个key 混淆了,你可以将其中一个key从ssh agent 中移除。
ssh-add -d ~/.ssh/github
然后在试着git push 代码,如果不错说明就正确了。
谢谢。
聊下 git 多账户问题的更多相关文章
- 聊下git pull --rebase
有一种场景是经常发生的. 大家都基于develop拉出分支进行并行开发,这里的分支可能是多到数十个.然后彼此在进行自己的逻辑编写,时间可能需要几天或者几周.在这期间你可能需要时不时的需要pull下远程 ...
- 聊下 git rebase -i
在使用git作为源代码管理工具的时候,开发的时经常会面临一个常见的问题,多个commit 需要合并为一个完整的commit提交. 在一个基本的迭代周期里,你会有很多次commit,有跟配置文件相关的, ...
- window下git多账户管理
前言 一般情况下,我们都是一台电脑配置一个Git账号,使用如下命令: git config --global user.name "your name" git config -- ...
- 聊下 git 使用前的一些注意事项
连接方式https.ssh 在使用git的时候,不管你的服务器是开源平台github还是私服gitlab,你都需要clone仓库到本地,这个clone的时候就需要你选择连接方式.这个连接方式决定了你与 ...
- 聊下 git remote prune origin
在你经常使用的命令当中有一个git branch –a 用来查看所有的分支,包括本地和远程的.但是时间长了你会发现有些分支在远程其实早就被删除了,但是在你本地依然可以看见这些被删除的分支. 你可以通过 ...
- 聊下git merge --squash
你经常会面临着将dev分支或者很多零散的分支merge到一个公共release分支里. 但是有一种情况是需要你处理的,就是在你的dev的分支里有很多commit记录.而这些commit是无需在rele ...
- 命令行下Git的使用
命令行下Git的使用 写在前边的话 以自己即将进行的毕设项目为例,进行Git使用的简易说明.不过由于校园网络的限制,故使用GitOSC. 快速开始 本次git使用位于自己的个人PC上,所以将个人的Gi ...
- linux下git的安装和使用(转)
转自:http://www.cnblogs.com/sunada2005/archive/2013/06/06/3121098.html 最近在使用github,感觉不错.在windows下,可使用g ...
- window下Git和github入门
tip:使用简单的例子来制作一个使用指南过程,默认文件夹为demo.看了3个早晨,写一下留个记录,可能有些不成熟,如有错误欢迎指正. 参考一:http://www.liaoxuefeng.com/wi ...
随机推荐
- VNC实现Windows远程访问Ubuntu 16.04(无需安装第三方桌面)
本文主要是讲解如果理由VNC实现Windows远程访问Ubuntu 16.04,其实网上有很多类似教程,但是很多需要安装第三方桌面(xfce桌面等等),而且很多人不太喜欢安装第三方桌面,很多人像笔者一 ...
- java程序调用存储过程和存储函数
java程序调用存储过程 jdbcUtil.java文件 package cn.itcast.oracle.utils; import java.sql.Connection; import java ...
- php使用curl下载指定大小的文件
php中使用基于libcurl的curl函数,可以对目标url发起http请求并获取返回的响应内容.通常的请求方式类似如下的代码: public function callFunction($url, ...
- c#接口和抽象类比较
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...
- 获取报告 Stream转string,利用字符串分割转换成DataTable
protected void Button1_Click(object sender, EventArgs e) { MemoryStream stream = new MemoryStream(); ...
- phpstudy升级mysql数据库
因为MySQL支持全文索引的只有5.6以上,而我下的phpstudy只有5.5的版本,在导入数据库的时候因为该数据库的表内有使用全文索引,因此必须升级phpstudy的mysql版本,这里就把自己当升 ...
- 记一次vscode升级后,格式化Vue出现的问题
一.VSCode中使用vetur插件格式化vue文件时,stylus代码会自动加上大括号.冒号和分号 本来就是简写比较方便舒服,结果一个格式化回到十年前 解决方案: vscode 文件 ->首 ...
- pycharm快捷键(转载)
1.编辑(Editing) Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift + Enter 语句完成Ctrl + ...
- JavaScript正则表达式实例汇总
本文会持续更新 -------------------------------------------------------------------------------------------- ...
- apache+php+mysql运行环境
建议Apache2.4+php5.6+mysql5.5+phpmyadmin4.4.4 参考: http://jingyan.baidu.com/article/fcb5aff797ec41edaa4 ...