怎样在同一台电脑使用不同的账号提交到同一个github仓库
近期这段时间使用github。有时在公司办公,想要用git提交代码到自己的github仓库,提交是显示的作者是自己在公司的账户。而不是自己的github账户。这就相当于提交到github的代码不是自己本人提交的,是其它人提交的。
如今的情况是这种:在公司我们也是使用git来管理代码。我们公司内部有自己的git仓库(B)。提交代码时用的账户就是公司的oa账号(A)。
而我自己有时候在家里做开发的时候。就是用自己注冊github账户(C)提交代码到自己账户下的github仓库(D)。
如今有时候在公司办公的时候。写一些demo或者好的代码时。想提交到自己的github账户(D)。因为用的是公司的电脑,提交到D时显示的username是A。
总结一下就是。怎样在同一台电脑使用不同的账号提交到同一个github仓库。这里我希望是用C账户提交到D仓库。而不是A账户提交到D仓库。
我查了两个链接资料:
1.怎样在同一台电脑上使用两个github账户:http://www.tuicool.com/articles/zqa6Rz
2.解决cygwin下的“Could not open a connection to your authentication agent.”:http://www.cnblogs.com/cheche/archive/2011/01/07/1918825.html
依据上面所说的我给自己的github账户配置了另外一个sshkey。用的是自己的私人邮箱生成的(之前已经在github上配置过了一个sshkey,用的是公司的邮箱)。
1:为工作账号生成SSH Key
$ ssh-keygen -t rsa -C "your-email-address" #存储key的时候,不要覆盖现有的id_rsa。使用一个新的名字,比方id_rsa_work
2:把id_rsa_work.pub加到你的work账号上
3:把该key加到ssh agent上。因为不是使用默认的.ssh/id_rsa,所以你须要显示告诉ssh agent你的新key的位置
$ ssh-add ~/.ssh/id_rsa_work # 能够通过ssh-add -l来确认结果
4:配置.ssh/config
$ vi .ssh/config # 加上下面内容
#default github
Host github.com
HostName github.com
IdentityFile ~/.ssh/id_rsa Host github_work
HostName github.com
IdentityFile ~/.ssh/id_rsa_work
5:这种话,你就能够通过使用github.com别名github_work来明白说你要是使用id_rsa_work的SSH key来连接github,即使用工作账号进行操作。
#本地建库
$ git init
$ git commit -am "first commit' #push到github上去
$ git remote add origin git@github_work:xxxx/test.git
$ git push origin master
假设出现故障“Could
not open a connection to your authentication agent”,须要须要ssh-agent启动bash。或者说把bash挂到ssh-agent以下。即运行以下两个命令:
$ ssh-agent bash --login -i
$ ssh-add
【ssh-agent介绍】
ssh-agent就是一个管理私钥的代理。受管理的私钥通过ssh-add来加入,所以ssh-agent的client都能够共享使用这些私钥。
优点1:不用反复输入password。
用 ssh-add 加入私钥时,假设私钥有password的话,照例会被要求输入一次password,在这之后ssh-agent可直接使用该私钥,无需再次password认证。
优点2:不用到处部署私钥
如果私钥分别能够登录同一内网的主机
A 和主机 B。出于一些原因,不能直接登录 B。能够通过在 A 上部署私钥或者设置 PortForwarding 登录 B,也能够转发认证代理连接在 A 上面使用ssh-agent私钥登录 B。
islue@localhost $ ssh -A HOST_Aislue@HOST_A $ ssh HOST_B
islue@HOST_B $
我的运行情况是这种:
运行完红色的三步之后,.ssh文件夹文件夹下的情况:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvS2luZ3Nvbl9XdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
把id_rsa_king4github.pub的sshkey加入到自己的github账户中:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvS2luZ3Nvbl9XdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
这里有两个ssh。一个在公司电脑用公司邮箱生成的。一个是在公司电脑用私人邮箱生成的。
接着继续操作:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvS2luZ3Nvbl9XdQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
vi /c/Users/kxw/.ssh/config
Host github.com
HostName github.com
IdentityFile ~/.ssh/id_rsa Host gitlab.tools.XXX.com
HostName gitlab.tools.XXX.com
IdentityFile ~/.ssh/id_rsa_XXX
这样假设我訪问时使用的是github.com,就是使用公司邮箱生成的ssh(E)訪问github。假设我使用github_king,即使用的是私人邮箱生成的ssh(F)。也就是我github账户注冊的邮箱。
情况也确实如此这样,这样去訪问我的github仓库使用的是不同的ssh。这样你也许会认为。假设使用ssh(F)訪问gitghub,那么提交代码时就是我的私人账户提交的。但是事实并非这种,提交之后显示的作者还是公司的账号,名称是kingson.wu(G),而不是我的私人账户名称kingson4wu(H)。
原因就是由于我设置的全局用户和邮箱都是公司的,这个配置在文件.gitconfig中:
打开之后:
平时在公司工作时都是用公司的账号提交,不太有必要改这里的配置。
所以假设要使用自己的私人账号提交代码的话。要又一次配置user和email(不要设置全局)。进入本地的某个git repository中,运行下面命令:
git config user.name "kingson4wu"
git config user.email "Kingson_Wu@163.com"
这样提交代码到自己的github仓库之后,显示的提交作者就是kingson4wu,即自己提交的。
如今有几个问题:
(1)假设使用私人邮箱生成的ssh(F)来訪问github,是不是能够不用运行命令git config user.email "Kingson_Wu@163.com"?
(2)假设使用公司邮箱生成的ssh(E)来訪问github,是不是假设运行
git config user.name "kingson4wu"
git config user.email "Kingson_Wu@163.com"
这两条命令,则提交代码时显示的名称是kingson4wu。并且是自己提交的?
带着这几个问题我做了几个试验(各种情形),结论例如以下:
问题(1),提交代码之后显示的名称确实是kingson4wu,可是遗憾的是,名称尽管是kingson4wu,可是却显示是别人提交的。
原因还是由于全局的邮箱是公司的邮箱,我github账户注冊的是我的私人邮箱。所以(1)是不行的。
问题(2),提交代码之后显示的名称确实是kingson4wu。显示的居然是自己提交的。不是别人提交的。
也许这时你会想到其它几种情况结果会是如何的,好吧。我都做了实验。终于的结论例如以下:
不管你是使用ssh(E),还是ssh(F)。事实上假设想要是自己私人的账户提交,都要又一次设置name和email,不同的仅仅是使用不同的ssh訪问github而已。
假设仅仅设置了name还是不行,提交之后名称尽管是对的,可是仍然显示是别人提交的。
想要看看是不是自己提交的。看看提交者是不是自己github的头像,或者是自己的今天的commit数有没有添加就可以。
终于的总结就是:
不用设置多个私人的ssh(F)。仅仅须要从github拉代码下来,进入git仓库,运行
git config user.name "kingson4wu"
git config user.email "Kingson_Wu@163.com"
这两条命令就可以。
怎样在同一台电脑使用不同的账号提交到同一个github仓库的更多相关文章
- 四步实现在一台电脑上使用多个github账号
四步实现在一台电脑上同时使用多个GitHub账号 今天和大家聊一下如何在一台电脑上同时使用多个GitHub账号,通过以下四个步骤就可以实现,其中第二个步骤为了便于叙述分成了几个小步骤. 1. 取消全局 ...
- 一台电脑安装多个版本的jdk
我们平时在做Java开发的时候,有时需要使用多个版本的jdk, 那么一台电脑上需要安装多个JDK了. 那一台电脑上可不可以同时安装多个版本的jdk呢? 答案是可以的! 但使用的时候,只能使用一个,不能 ...
- 【转载】 删除Win10“这台电脑”中的6个文件夹
转载地址:http://www.myxzy.com/post-431.html Windows 8.1/windows 10对比windows 7都有一个变化,打开“这台电脑”(或“我的电脑”)后,“ ...
- 一个github账户多台电脑代码提交
在实际工作生活中,我们可能不一定仅仅在一台电脑上编码,比如:我们平时在单位电脑1上写代码,提交代码到github账户,而我们也可能会在在家里的电脑2上继续工作,提交代码,这样就是在不同的电脑上提交代码 ...
- 如何在一台电脑上开启多个tomcat
大家基本上都只在一台电脑上面启动一个Tomcat,而启动多个Tomcat会提示报错等相关故障.而假如调试负载均衡及集群的时候,需要在一台电脑上面开启多个Tomcat,那么怎么开启呢? 首先需要知道的是 ...
- (转)如何在一台电脑上开启多个tomcat 和配置让系统识别哪个具体的tomcat
大家基本上都只在一台电脑上面启动一个Tomcat,而启动多个Tomcat会提示报错等相关故障.而假如调试负载均衡及集群的时候,需要在一台电脑上面开启多个Tomcat,那么怎么开启呢? 方法/步骤 首先 ...
- 在同一台电脑上同时安装Python2和Python3
目前Python的两个版本Python2和Python3同时存在,且这两个版本同时在更新与维护. 到底是选择Python2还是选择Python3,取决于当前要使用的库.框架支持哪个版本. 例如:HTM ...
- BitTorrent Sync - 神奇的文件同步软件,无需服务器让多台电脑互相同步!
176,487 微博 腾讯 空间 微信 141 49 如今人们对文件备份和同步的需求已经越来越强烈了.像 Dropbox 一样的云存储网盘有很多,但它们都有一个局限性,就是所有的文件都得经过它们的服务 ...
- [转]Windows 8.1删除这台电脑中视频/文档/下载等六个文件夹的方法
Windows 8.1 已将“计算机”正式更名为“这台电脑”,当我们双击打开“这台电脑”后,也会很明显得发现另外一些变化:Windows 8.1 默认将视频.图片.文档.下载.音乐.桌面等常用文件夹 ...
随机推荐
- python-sqlite3事务
sqlite3事务总结: 在connect()中不传入 isolation_level 事务处理: 使用connection.commit() #!/usr/bin/env python # -*- ...
- A - Kefa and First Steps
Problem description Kefa decided to make some money doing business on the Internet for exactly n day ...
- Centos7下Docker的使用
一.安装Docker 1.1.查看原有系统是否已经安装docker yum list installed | grep docker 1.2.如果有则不需要继续安装,想重新安装,先卸载 yum -y ...
- lua队列实现
Queue = {} function Queue.newquene() } end function Queue.push(queue, value) queue.count = queue.cou ...
- 有关PHP里的Cookie
会话技术:Cookie,Session: Cookie是客户端技术,服务器把每个用户的数据以Cookie的形式保存在用户各自的浏览器,当用户用浏览器再次访问服务器的web资源时则会带着各自的数据去了: ...
- classname在JavaScript中的应用
<html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...
- 在redhat6.4上编译z3求解器
因为项目需要,我们使用到了微软的z3求解器求约束,但是z3求解器在红帽平台上并没有发布编译好的二进制版本,而我们的运行环境是红帽的企业版6.4,因此需要自己编译相应的二进制. z3是由微软公司开发的一 ...
- tomcat 使用常见问题
tomcat 下目录的介绍: 参考地址: http://blog.csdn.net/u013132035/article/details/54949593 参考书籍:tomcat权威指南 (1) 非w ...
- (转)shiro权限框架详解01-权限理论介绍
http://blog.csdn.net/facekbook/article/details/54890365 权限管理 本文介绍权限管理的理论和权限管理的一些名词. 介绍权限管理 理解身份认证和授权 ...
- CorelDRAW X7软件中如何将图片剪贴到文字中
将 图片剪贴到文字中是平面设计常用的一种处理方法之一,将图片剪贴到文字中是指将图片置入到该文字,且图片的外轮廓是沿着文字的形状剪贴的,这种处理手法被广泛应用于排版设计中.本教程将带大家了解如何用Cor ...