聊下 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-10-07 03:31:28

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

聊下git pull --rebase

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

聊下 git rebase -i

在使用git开发的时候经常会面临一个常见的问题.多个commit 需要合并为一个完整的commit提交. 我们先说第一个合并多个commit为一个完整的commit 我先基于develop主分支拉出一个功能分支(每个人和每个公司对分支的管理都不太一样,这里不需要太纠结.).这里的develop是开发主分支,所有的开发功能代码都需要回归到这个develop分支中去. git branch -a –vv develop_fixbug_imageprint 分支是我基于远程develop分支拉出来的开

聊下 git 使用前的一些注意事项

连接方式https.ssh 在使用git的时候,不管你的服务器是开源平台github还是私服gitlab,你都需要clone仓库到本地,这个clone的时候就需要你选择连接方式.这个连接方式决定了你与服务器交互的时候以一个什么协议进行.如果你没搞清楚这两种方式,可能你在使用的时候会很困惑,别人在push代码的时候没有提示输入账号密码,而你却有,至少我当初有过这个问题. 可选择的协议有https.ssh两种,这从git repository仓库的地址就能分辨出来. 这是我6年前的开源项目,套打组件

聊下git merge --squash

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

聊下 git remote prune origin

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

ubuntu下git安装及使用

ssh目录在etc/ssh下 如何在本地使用git http://jingyan.baidu.com/album/295430f1c62c900c7e0050fd.html?picindex=1 参考:1. ubuntu下git安装及使用 http://www.cnblogs.com/jackge/archive/2013/08/17/3264801.html 2. 多 SSH Key 管理技巧与 Git 多账户登录问题 http://blog.csdn.net/forlong401/artic

linux下git的安装和使用(转)

转自:http://www.cnblogs.com/sunada2005/archive/2013/06/06/3121098.html 最近在使用github,感觉不错.在windows下,可使用github提供的windows客户端(http://windows.github.com/).很傻瓜,很方便.如何使用?详见:http://www.cr173.com/html/15618_1.html.(有图是王道)最近发现,在公司电脑上安装github的windows客户端时,可能由于公司网络限

Linux下Git和GitHub基本使用

[初识Github] 首先让我们大家一起喊一句"Hello Github".YEAH!就是这样. Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中.目前,包括Rubinius和Merb在内的很多知名项目都使用了Git.Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用.同样,eoe.cn客户端的源码也托管在github

Linux下FTP虚拟账户配置

参考模版/usr/share/doc/vsftpd-2.0.5/EXAMPLE/VIRTUAL_USERS) 1.创建虚拟账户 [[email protected] ~]#yum install db4-utils [[email protected] ~]#vim /etc/vsftpd/vlogin tomcat #账户名称 123456 #密码 jerry #账户名称 654321 #密码 [[email protected] ~]#db_load -T -t hash -f /etc/v