版权声明:技术总结来自互联网,书籍,以及工作积累。如果觉得我的总结有帮助,欢迎分享。 https://blog.csdn.net/qq1332479771/article/details/70149616

概述

电脑上已经配置了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/*'将修改推送到远程

补救参考方法地址
修改log中的邮箱官网方法

参考链接->同一机器配置多个git账号
参考链接->为每个git仓库设置不同的用户名和邮箱

 (转)windows一台电脑添加多个git账号的更多相关文章

  1. 一台电脑关联多个git账号

    一台电脑连接多个git账号 现需要一台电脑连接gitlab,github,码云,之前的操作时,用公司账号,在这几个地方都注册一遍,导致自己就有两类号,一个自己的,一个公司的,这样也是可以,但总是不太好 ...

  2. 一台电脑支持2个git账号:gitlab+github

    一.背景 1.公司使用gitlab保存代码,git已支持. 2.需要新增一个人github账户.创建study项目并提交到github上. 3.git提交时互相不混淆 二.操作流程 1.注册githu ...

  3. 一台电脑同时使用多个Git账号

    参照 https://my.oschina.net/u/3578363/blog/2209781

  4. windows系统一台电脑先后添加多个git账号

    概述 电脑上已经配置了github的ssh连接.现在又有一个不同的git账户,也就是要在一台电脑上配置两个git账号. 下面记录一下我配置的方法. 一.取消git全局配置 之前配置github的时候, ...

  5. (windows)一台电脑上安装两个Mysql服务

    原文:https://my.oschina.net/u/1472917/blog/410732 最近需要在一台电脑上安装两个Mysql服务,需求稍微有些奇怪,但确实很必要.本人原本为了本机测试Word ...

  6. windows同一台电脑设置多个公钥与不同github帐号交互

    1 生成公钥 1. 安装git,从C:\Documents and Settings\Administrator\.ssh\目录打开 "Git Bash":2. 键入命令:ssh- ...

  7. 一台电脑存放多个git账户的多个rsa秘钥

    未命名.html div.oembedall-githubrepos{border:1px solid #DDD;border-radius:4px;list-style-type:none;marg ...

  8. 一台电脑存放多个git账户的多个rsa秘钥(转)

    如何在一个电脑上存储多个git账户生成的多份rsa秘钥,实现多个账户同时使用配置的情况?今天,不幸又再次遇到这个问题. 问题描述 公司最近在开发一款开源产品,项目被托管在github上,但是公司内部一 ...

  9. 一台电脑配置多个GigHub账号

    换了新的公司,原来的公司用SVN(比较老了),自己平时用码云(Gitee),新公司使用GitHub.前天通知我注册GitHub账号,但是并未通知用户名的事情(要求用自己的名字),原来的GitHub账号 ...

随机推荐

  1. vue 权限控制按钮3种样式、内容、以及跳转事件

    最近碰到一个因为要根据权限来给一个按钮变成不同功能, 简单写出3个按钮然后用v-if也能实现这个功能,但是在加载页面时,如果延迟过高则会把按钮按照DOM顺序加载出来,这是个很不好的效果 思索了下,把三 ...

  2. VUE2.0 【v-html】标签使用技巧

    <div class="active-rules"> <div class="weui-weixin-content" id="ru ...

  3. 2016-2017 ACM-ICPC, South Pacific Regional Contest (SPPC 16)

    题目链接  Codeforces_Gym_101177 Problem A  Anticlockwise Motion 直接模拟即可 #include<iostream> #include ...

  4. 洛谷—— P2880 [USACO07JAN]平衡的阵容Balanced Lineup

    https://www.luogu.org/problemnew/show/P2880 题目背景 题目描述: 每天,农夫 John 的N(1 <= N <= 50,000)头牛总是按同一序 ...

  5. DNA的分子结构

    DNA是由两条链组成的, 这两条链按反相平行的方式盘旋成双螺旋结构 DNA分子中的脱氧核糖和磷酸交替连接, 排列在外侧, 构成基本骨架; 碱基排列在内侧. 两条链上的碱基通过氢键连接成碱基对, 并且其 ...

  6. kafka生产者客户端

    kafka的生产者 1. 生产者客户端开发 ​ 熟悉kafka的朋友都应该知道kafka客户端有新旧版本,老版本采用scala编写,新版本采用java编写.随着kafka版本的升级,旧版本客户端已经快 ...

  7. 12.Java web--过滤器与监听器

    1)过滤器 就是为请求与目标之间加一个或多个过滤器 自定义过滤器要实现Filter接口 下面是定义一个所有Servlet的请求中文不乱码 /** * 用于servlet输出中文乱码的过滤 */ @We ...

  8. Excel文件处理Demo

    1.BLL业务逻辑代码 /// <summary> /// 处理“店铺竞品销售数据”导入文件 /// </summary> /// <param name="f ...

  9. mysql 安装配置及经常使用操作

    作为关系型数据库的一种,mysql因其占用内存小和开源等特性而兴起.以下简介下关于mysql配置和简单的操作. mysql配置 1.安装文件的下载 免安装版下载地址 :http://dev.mysql ...

  10. intellij idea 的常用有用快捷键

    ctrl + R:替换(这一点和office 中的ctrl + H不一样) ctrl + alt + L:自动整理代码(不会整理注释文件) ctrl + alt:(自动导入包,不能批量导入,有人评论批 ...