git从安装到多账户操作一套搞定(二)多账户使用
作者:良知犹存
转载授权以及围观:欢迎添加微信:Allen-Iverson-me-LYN
总述
GIT是当今热门代码管理技术,但是如此火的系统,竟然是大神林纳斯花了两周用C写出来的一个分布式版本控制系统。github就是依托git技术发展的当今世界最大的代码管理平台。
这么好用的git教程也是很多,但是我因为在工作中遇到需要在一台电脑上实现公司git服务器和自己私人的远程仓库两个账户的推送,看了好多篇文章,终于设置成功,觉得有些操作需要特别注意,遂写这篇文章提示大家,希望可以帮助到大家,从安装到使用一气呵成。
继上一篇文章继续分享GIT的使用,git从安装到多账户操作一套搞定(一)入门使用
四、GIT多账号配置
ssh 方式链接到 Github/GitLab,需要唯一的公钥,如果想同一台电脑绑定两个Github/GitLab 帐号,需要两个条件:
能够生成两对 私钥/公钥
push 时,可以区分两个账户,推送到相应的仓库
解决方案:
1. 生成 私钥/公钥 时,密钥文件命名避免重复
2. 设置不同 Host 对应同一 HostName 但密钥不同
3. 取消 git 全局用户名/邮箱设置,为每个仓库独立设置 用户名/邮箱
上一篇文章描述了一个账号从生成rsa密钥到推送到github仓库的示例,按照上篇文章git从安装到多账户操作一套搞定(一)入门使用我们继续生成第二把密钥,只不过这把密钥需要特别的配置一下。
1>查看已有 密钥
下输入命令 ls ~/.ssh/,看到 id_rsa 与 id_rsa_pub 则说明已经有一对密钥。如下图
2>生成新的公钥,并命名为 id_rsa_2 (保证与之前密钥文件名称不同即可,文件名最好有意义,否则写后面的配置的时候写错文件名,我的文件名是id_rsa_ljy)
ssh-keygen -t rsa -f ~/.ssh/id_rsa_2 -C "yourmail@xxx.com"
3>在 .ssh 文件夹下新建 config 文件并编辑,令不同 Host 实际映射到同一HostName,但密钥文件不同。Host 前缀可自定义:
# defaultHost 192.168.1.xx(自行按照IP配置)HostName 192.168.1.xx(自行按照IP配置)User gitIdentityFile ~/.ssh/id_rsa_2# twoHostieit.github.comHostName github.comUser gitIdentityFile~/.ssh/id_rsa
参考文章:
https://blog.csdn.net/jifaliwo123/article/details/79126785
注意点:
在配置文件中的,IdentityFile文件位置是rsa密钥,不是pub文件
提交代码的时候,需要修改git config 可以之设置一个全局的user.email和user.name,然后需要不同的配置的仓库,单独设置
上一篇设置了--global user.name --global user.email
这次多账户使用需要设置,单独的文件夹下面的邮箱与名称,保证我们使用该文件夹下文件进行git操作的使用,对应的账户名和邮箱属于除去主账号之外的账号。
//设置仓库的user.email和user.name
gitconfig user.email"yeungeek@gmail.com"
gitconfig user.name "yeungeek"
开始在github 或者私有服务器设置公钥 这部分上一篇也都描述很详细。下面就用新的账户进行另一种方法的git上传。
这里我还是在github的截图,因为公司使用的保密性,所以我不进行展示,我只是表示用上面方法我成功进行了一台pc两个账户使用。
五、GIT多账号使用
第二种方法 通过本地建立仓库直接远程上传
echo "# Simple-red-black-tree" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origingit@github.com:conscience-still/Simple-red-black-tree.git
git push -u origin master
新建一个README.md
$ git add . //添加到暂存仓库
$ git commit -m "simple red-black tree" //添加上传注释
再次设置本文件夹下的用户名和邮箱
在Github上创建好Git仓库之后我们就可以和本地仓库进行关联了,根据创建好的Git仓库页面的提示,可以在本地Simple-red-black-tree仓库的命令行输
$ git remote add origin git@github.com:conscience-still/Simple-red-black-tree.git
关联好之后我们就可以把本地库的所有内容推送到远程仓库(也就是Github)上了,通过:
$ git push -u origin master
由于新建的远程仓库是空的,所以要加上-u这个参数,等远程仓库里面有了内容之后,下次再从本地库上传内容的时候只需下面这样就可以了:
$ git push origin master
至此就完成了将本地项目上传到Github的整个过程。
另外,这里有个坑需要注意一下,就是在上面第七步创建远程仓库的时候,如果你勾选了Initializethis repository with a README(就是创建仓库的时候自动给你创建一个README文件),那么到了第九步你将本地仓库内容推送到远程仓库的时候就会报一个failedto push some refs to https://github.com/guyibang/TEST2.git的错。
这是由于你新创建的那个仓库里面的README文件不在本地仓库目录中,这时我们可以通过以下命令先将内容合并如下:
$ git pull --rebase origin master
这时你再push就能成功了。
参考文章:
https://blog.csdn.net/Lucky_LXG/article/details/77849212
这就是我分享的git的基本操作,里面过程都是实践过的,很多地方都是边学边做,感谢很多博主的文章,好多也没有直接交流, 只是在这里表达一些感谢。如果大家有什么更好的思路,欢迎分享交流哈。
更多分享,扫码关注我
git从安装到多账户操作一套搞定(二)多账户使用的更多相关文章
- git从安装到多账户操作一套搞定(一)入门使用
作者:良知犹存 转载授权以及围观:欢迎添加微信:Allen-Iverson-me-LYN 总述 GIT是当今热门代码管理技术,但是如此火的系统,竟然是大神林纳斯花了两周用C写出来的一个分布式版 ...
- 在mac上安装gradle(超详细,直接按步骤操作即可轻松搞定)
第一步, 就是先download最新版本的gradle,网址如下: http://gradle.org/gradle-download/ 然后将下载下来的zip包放解压到本地任意的路径上, 例如,我本 ...
- CentOS安装Yarn只需两步就搞定
Yarn 是一个依赖管理工具.它能够管理你的代码,并与全世界的开发者分享代码.Yarn 是高效.安全和可靠的,你完全可以安心使用.代码是通过包(有时也被称为组件). 在每一个包中会定义一个 packa ...
- Shell 脚本之 MySQL 一键安装及基本配置(几分钟搞定)
准备工作 MySQL 该版本下载地址: https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12- ...
- Git配置安装使用教程操作github上传克隆数据
Git是何方神圣? Git是用C语言开发的分布版本控制系统.版本控制系统可以保留一个文件集合的历史记录,并能回滚文件集合到另一个状态(历史记录状态).另一个状态可以是不同的文件,也可以是不同的文件内容 ...
- Git的安装及常用操作
一.Git的安装 1.下载Git,官网地址为:https://git-scm.com/downloads. 2.下载完成之后,双击目录进行安装 3.选择安装目录 4.选择组件,默认即可 5.设 ...
- Git 基础 —— 安装 配置 别名 对象
Git 基础学习系列 Git 基础 -- 安装 配置 别名 对象 Git 基础 -- 常用命令 Git 基础 -- 常见使用场景 Git基础 -- Github 的使用 Git 安装 Git下载地址 ...
- windows 系统下git 的安装
在linux系统下,可以直接在命令窗口安装和使用git.但是,在windows系统下,想要达到同样的效果,可以安装git,使用git bash到达效果.具体安装步骤如下: 第一步:官网上下载git 网 ...
- git的安装和简单使用
目前windows版本的git有几种实现,但我们选择msysgit发行版,这是目前做得兼容性最好的. 下载地址: http://code.google.com/p/msysgit/downloads/ ...
随机推荐
- 史上最全的pycharm快捷键!快进来点个收藏吧
Alt+Enter 自动添加包 Ctrl+t SVN更新 Ctrl+k SVN提交 [编辑类:](https://link.zhihu.com/?target=https://www.jianshu. ...
- AI算法测评事项
前言 注:大概2017年-2018年国内人工智能热度达到顶峰,随后热度开始逐渐减少.2018年前人工智能被投资界.学术界.工业界和媒体炒的特别热,各大企业都想尝试一下深度学习技术在业务场景的应用.试水 ...
- CentOS8_在线安装_网络源_网络镜像源填写格式_以及其他笔记
CentOS8_在线安装_网络源_网络镜像源填写格式_以及其他笔记 转载注明来源: 本文链接 来自osnosn的博客,写于 2020-10-1. 参考: Centos8.0.1905 在线安装源选择 ...
- WEB安全讨论-表单登录是先验证验证码还是密码
表单登录是先验证验证码还是密码? 肯定是验证码呀!!!这是毋庸置疑的.但是发现有人会验证密码,感觉先验证密码和先验证验证码是一个概念是一样的.但是其实是完全不一样的.下面我们来一起详细的剖析一下: 消 ...
- 软件性能测试分析与调优实践之路-Web中间件的性能分析与调优总结
本文主要阐述软件性能测试中的一些调优思想和技术,节选自作者新书<软件性能测试分析与调优实践之路>部分章节归纳. 在国内互联网公司中,Web中间件用的最多的就是Apache和Nginx这两款 ...
- Ubuntu 一直要求依赖的错误
今天笔者在windows上装linux双系统,选用的ubuntu,因为第> 一次用,所以出现了这个问题. 如题,安装个gcc一直要求我要装依赖,如图 接下来我又开始一个个安装那些依赖,比如 su ...
- Salesforce 大数据量处理篇(二)Index
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.202.0.salesforce_large_data_volumes_bp.meta/ ...
- 讲讲Java8的Optional类
前言 Java 8中引入了 Optional 类来解决 NullPointerException 与繁琐的 null 检查,该类首次出现在 Guava.Java 8 才成为类库中的一部分. 入门 Op ...
- --safe-user-create
此参数如果启用,用户将不能用grant语句创建新用户,除非用户有mysql数据库中user表的insert权限, ./mysqld_safe --safe-user-create & 用-- ...
- 给mysql选择调度策略
在gun/linux上,队列调度决定了到块设备的请求实际上发送到底层设置的顺序.默认情况下是cfg(完全公平排队)策略,随意使用的笔记本和台式机使用中个调度策略没有问题,并且有助于防止io饥饿,但是用 ...