(转)windows一台电脑添加多个git账号
概述
电脑上已经配置了github的ssh连接。现在又有一个不同的git账户,也就是要在一台电脑上配置两个git账号。
下面记录一下我配置的方法。
取消git全局配置
之前配置github的时候,用命令
git config --golbal user.name "XXX"
git config --golbal user.email "xxx@aa.com"
因为需要用到两个git账户,所以针对之前配置的全局配置就得取消。
命令如下:
#全局配置账户已经移除
git config --global --unset user.name
#查看全局用户名
git config --global user.name
#全局配置邮箱已经移除
git config --global --unset user.email
#查看全局邮箱
git config --global user.email
生成新的SSH KEYS
- 先用cd命令将当前目录切换到~/.ssh目录下
用ssh-keygen命令生成一组新的id_rsa_new和id_rsa_new.pub
生成方法用命令ssh-keygen -t rsa -C "xxx@aa.com"
,这里确认之后和第一配置就有不同了。
第一次给github配置sshkey时,直接按回车,其余什么都不管。最后看生成的id_rsa文件和id_rsa.pub文件。
这次需要给这个生成的文件起一个名,例如id_rsa_new
.步骤如图中所示。
需要修改步骤1和步骤2执行ssh-agent让ssh识别新的私钥
命令为下面两步:
#Start the 'ssh-agent.exe' process
eval $(ssh-agent -s)
#install the SSH keys
ssh-add ~/.ssh/id_rsa_new
- 配置多个账户的~/.ssh/config文件文件
# 该文件用于配置私钥对应的服务器
# first user
Host git@github.com
HostName https://github.com
User git
IdentityFile ~/.ssh/id_rsa # second user
Host git@code.aliyun.com
HostName https://code.aliyun.com
User git
IdentityFile ~/.ssh/id_rsa_new
把公钥添加到SSH KEYS
方法为:
在github找到Settings->SSH and GPG keys。然后添加
测试是否成功
用命令ssh -T git@github.com
成功的话,会返回包含Hi XXXXX! You've successfully authenticated
的字符串。
特别注意:github提交之后,contribution没有提交记录的小绿点问题
原因
这里,因为取消了全局的用户名和密码,在本地进行提交时,github不能将本地仓库对应的提交者和远程github账号对应的用户对应起来,所以就不记录了。
可以通过在仓库根目录下git log
查看提交记录,会发现有一些提交用户名和邮箱和GitHub的账号不对应。
解决方法
为每个仓库设置单独的用户名和密码。方法如下:
# .进入到需要修改的仓库中
git config user.name GitHub的用户名
git config user.email GitHub的登录邮箱
查看是否修改成功的方法:
在代码仓库的.git目录中
[core] [remote "origin"] [branch "master"] [user]
name = 你的GitHub用户名
email = 你的GitHub邮箱
如果你已经提交了代码才发现这个问题也是有补救办法的。
1.在仓库中根目录新建一个shell脚本,命名为1.sh,内容如下:
#!/bin/sh
git filter-branch --commit-filter '
if [ "$GIT_AUTHOR_EMAIL" = "之前不对应的邮箱" ];
then
GIT_AUTHOR_NAME="对应的用户名";
GIT_AUTHOR_EMAIL="对应的邮箱";
git commit-tree "$@";
else
git commit-tree "$@";
fi' HEAD
2.然后执行1.sh
3.git log
查看之前的记录是否已经修改回来,正常的话应该都改回来了。
4.执行git push --force --tags origin 'refs/heads/*'
将修改推送到远程
(转)windows一台电脑添加多个git账号的更多相关文章
- 一台电脑关联多个git账号
一台电脑连接多个git账号 现需要一台电脑连接gitlab,github,码云,之前的操作时,用公司账号,在这几个地方都注册一遍,导致自己就有两类号,一个自己的,一个公司的,这样也是可以,但总是不太好 ...
- 一台电脑支持2个git账号:gitlab+github
一.背景 1.公司使用gitlab保存代码,git已支持. 2.需要新增一个人github账户.创建study项目并提交到github上. 3.git提交时互相不混淆 二.操作流程 1.注册githu ...
- 一台电脑同时使用多个Git账号
参照 https://my.oschina.net/u/3578363/blog/2209781
- windows系统一台电脑先后添加多个git账号
概述 电脑上已经配置了github的ssh连接.现在又有一个不同的git账户,也就是要在一台电脑上配置两个git账号. 下面记录一下我配置的方法. 一.取消git全局配置 之前配置github的时候, ...
- (windows)一台电脑上安装两个Mysql服务
原文:https://my.oschina.net/u/1472917/blog/410732 最近需要在一台电脑上安装两个Mysql服务,需求稍微有些奇怪,但确实很必要.本人原本为了本机测试Word ...
- windows同一台电脑设置多个公钥与不同github帐号交互
1 生成公钥 1. 安装git,从C:\Documents and Settings\Administrator\.ssh\目录打开 "Git Bash":2. 键入命令:ssh- ...
- 一台电脑存放多个git账户的多个rsa秘钥
未命名.html div.oembedall-githubrepos{border:1px solid #DDD;border-radius:4px;list-style-type:none;marg ...
- 一台电脑存放多个git账户的多个rsa秘钥(转)
如何在一个电脑上存储多个git账户生成的多份rsa秘钥,实现多个账户同时使用配置的情况?今天,不幸又再次遇到这个问题. 问题描述 公司最近在开发一款开源产品,项目被托管在github上,但是公司内部一 ...
- 一台电脑配置多个GigHub账号
换了新的公司,原来的公司用SVN(比较老了),自己平时用码云(Gitee),新公司使用GitHub.前天通知我注册GitHub账号,但是并未通知用户名的事情(要求用自己的名字),原来的GitHub账号 ...
随机推荐
- hdu 1077(单位圆覆盖问题)
Catching Fish Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- LeetCode OJ——Longest Valid Parentheses
http://oj.leetcode.com/problems/longest-valid-parentheses/ 最大括号匹配长度,括号是可以嵌套的 #include <string> ...
- 详解DNS域名解析全过程
关于dns域名解析的大致过程很多人都知道,但有些细枝末节的东西容易遗忘,今天有空整理一下,作为以后复习用,如有不对的地方,还望指正.解析大致过程如图(不喜欢看图的可以直接跳过): 当一个用户在地址栏输 ...
- Codeforces 620F Xors on Segments(暴力+DP)
题目链接 Xors on Segments 预处理出$x[i]$ $=$ $1$ $xor$ $2$ $xor$ $3$ $xor$ $……$ $xor$ $i$ 话说这题$O(n^{2})$居然能过 ...
- Codeforces Round #295 (Div. 1) C. Pluses everywhere
昨天ZZD大神邀请我做一道题,说这题很有趣啊. 哇,然后我被虐了. Orz ZZD 题目大意: 你有一个长度为n的'0-9'串,你要在其中加入k个'+'号,每种方案就会形成一个算式,算式算出来的值记做 ...
- Android入门:MVC模式(中)
MVC 模式的最基本概念是分层设计,把我们的代码基于 View(视图).Model(模型).Controller(控制器)进行分类封装,这样做的目的是为了清晰结构,使代码更易维护和扩展. 在上一篇文章 ...
- Scala IDE里的WorkSheet的使用
所见即所得的一个工具, 左边编码,右边立即出结果 https://www.cnblogs.com/zlslch/p/6115118.html
- c++中.dll与.lib文件的生成与使用的详解
两种库: • 包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library.• 包含函数代码本身,在编译时 ...
- 树莓派 Zero W——随身钥匙扣
前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 本文使用Markdown写成,为获得更好的阅读体验和正确的格式显示,请访问我的博客原文: http://www.cnblogs.c ...
- python(34)- 模块与包练习
创建如下目录结构 keystone/ ├── __init__.py └── auth ├── __init__.py └── plugins └── core.py ...