聊下 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 clonegitlabgithubrepository 时,需要分别为每个 git clone 下来的 repository 设置当前仓库的 user.nameuser.email

这个问题请参见本人的 git 系列文章 -> 聊下 git 使用前的注意事项

ssh 多密钥对配置

我们都知道 git 是基于 ssh 协议,git 通过 ssh agent 建立与远程链接和验证。

ssh 通过 rsa 私钥进行加密传输到 git servergit server 再通过查找对应的 rsa pub key 进行解密,以验证是否当前提交过来的合法信息。

我们通过 ssh-keygen 分别创建不同的 rsa 密钥对,如果你没有特殊处理过公司内部私有的密钥对一般都是默认的名称 id_rsaid_rsa.pub

如果我们是第一次创建 git 账号,第一次可以纯粹默认的创建过程

ssh-keygen -t rsa

一路 enter 回车,然后配置好公司内部的 gitlab ,正常提交。

然后再通过 ssh-keygen 创建的时候另起一个名字,比如 githubgithub.pub 一对,这和创建默认的 idid.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 代码,如果不错说明就正确了。

谢谢。

时间: 2024-09-20 10:35:06

聊下 git 多账户问题的相关文章

聊下git pull --rebase

有一种场景是经常发生的. 大家都基于develop拉出分支进行并行开发,这里的分支可能是多到数十个.然后彼此在进行自己的逻辑编写,时间可能需要几天或者几周.在这期间你可能需要时不时的需要pull下远程develop分支上的同事的提交.这是个好的习惯,这样下去就可以避免你在一个无用的代码上进行长期的开发,回头来看这些代码不是新的代码.甚至是会面临很多冲突需要解决,而这个时候你可能还需要对冲突的部分代码进行测试回归,这就很麻烦了. 那么我们来看一下你在pull时候需要习惯性的加上-rebase参数,

聊下 git remote prune origin

在你经常使用的命令当中有一个git branch –a 用来查看所有的分支,包括本地和远程的.但是时间长了你会发现有些分支在远程其实早就被删除了,但是在你本地依然可以看见这些被删除的分支. 你可以通过命令,git remote show origin 来查看有关于origin的一些信息,包括分支是否tracking. Local refs configured for 'git push',这一栏说明你push了哪些分支上origin. develop_newfeature_apiwrapper

聊下git merge --squash

你经常会面临着将dev分支或者很多零散的分支merge到一个公共release分支里. 但是有一种情况是需要你处理的,就是在你的dev的分支里有很多commit记录.而这些commit是无需在release里体现的. develop 主分支 develop主分支最近的一个commit是"fix imageprint bug.".我们拉出一个分支进行项目开发,里面会有很多commit记录. git checkout -b develop_newfeature_ImportDataInte

分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目

分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目 这几天着实忙的焦头烂额,可惜不是搞技术,今天周日,难得闲下来,写篇大家都想学习的Git教程,其实廖雪峰老师的网站已经非常详细了,但是.咳咳,太长了,我就稍微简单点的来概括,其实Git在MAC和Ubuntu上的体验是最好的,不过搞Android开发的我相信绝大多数人还是用windows吧,当然不排除个例 廖雪峰教程:http://www.liaoxuefeng.com/wiki/001373951630592960

idea下git pull的生活 因为一个iml文件,导致pull失败,怎么解决

问题描述 idea下git pull的生活 因为一个iml文件,导致pull失败,怎么解决 解决方案 因为这个文件没有track 你如果不需要合入代码库 那你就删除

windows-Windows下git克隆,远程服务器路径填写

问题描述 Windows下git克隆,远程服务器路径填写 我在机器上部署了git服务器,然后创建了一个仓库,路径为C:gitdemo 现在想在c盘下面clone这个仓库里面的内容,请问这个URL应该怎么填 解决方案 你的URL不对,没有用户名,应该是: git@192.168.0.102:用户名/gitdemo 解决方案二: 参考下http://www.jb51.net/article/55440.htmhttp://www.111cn.net/sys/Windows/59301.htm 解决方

linux下FTP下创建虚拟账户db_load

Linux_FTP配置虚拟用户问题 执行db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db时报错 -bash: db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db: No such file or directory db_load应该linux下创建虚拟账户: 选项-T允许应用程序能够文本文件转译载入进数据库由于我们之虚拟用户信息文件方式存储文件里了让Vsft

CentOS下Git的服务器版安装和使用

Git分布式版本控制系统: Git的使用体验,早已习惯了svn [集中式] 代码管理的吾,第一次接触分布式的git的时候,感觉很难使用,煎熬了一段时间,整个项目组,也是花费了很大的代价,就是出现代码被覆盖很多次,代码都不敢提交了! 记得在中国民航的时候,由于服务器硬件搬家过程中损坏,导致整个系统和代码全部丢失,不是很重要所以没有去做数据恢复,svn就挂了. 记得在金葵花的时候,由于svn服务器端口被抢占,导致没有启动,早上经理不在,没权限,所有,大家闲置了一早上. 使用了一段时间的git,使用过

Linux系统下Git的基本配置和使用示例

  git config配置文件 一.Git已经在你的系统中了,你会做一些事情来客户化你的Git环境.你只需要做这些设置一次;即使你升级了,他们也会绑定到你的环境中.你也可以在任何时刻通过运行命令来重新更改这些设置. Git有一个工具被称为git config,它允许你获得和设置配置变量;这些变量可以控制Git的外观和操作的各个方面.这些变量可以被存储在三个不同的位置: 1./etc/gitconfig 文件:包含了适用于系统所有用户和所有库的值.如果你传递参数选项'--system' 给 gi