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 前缀可自定义:
# default
Host 192.168.1.xx(自行按照IP配置)
HostName 192.168.1.xx(自行按照IP配置)
User git
IdentityFile ~/.ssh/id_rsa_2
# two
Hostieit.github.com
HostName github.com
User git
IdentityFile~/.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/ ...
随机推荐
- Nginx集成Naxsi防火墙
前言 因工作原因,接触到了WAF,今天部署了一下Naxsi,记录一下 GitHub 正文 环境 Centos 7 下载 更新yum yum update -y 安装必要依赖 yum install g ...
- JavaScript 获得当前日期+时间
//直接从项目中copy出来的,亲测可用.function getTodayTime(){ var date = new Date(); var seperator1 = "-"; ...
- Laya 踩坑日记-人物模型穿模,模型显示不正常
最近做游戏,人物要跑到很远的位置,z轴距离大概有20000个单位,然后就发现一个bug,到远处人物模型穿了,而且没办法改,这就尴尬了 Z轴对应值 0 100000 100000 当距离零点 ...
- MongoDB Sharding(二) -- 搭建分片集群
在上一篇文章中,我们基本了解了分片的概念,本文将着手实践,进行分片集群的搭建 首先我们再来了解一下分片集群的架构,分片集群由三部分构成: mongos:查询路由,在客户端程序和分片之间提供接口.本次实 ...
- Centos 安装 Node-v12.17.0-linux-x64.tar.gz
wget https://nodejs.org/dist/v12.17.0/node-v12.17.0-linux-x64.tar.gz tar -zxf node-v12.17.0-linux-x6 ...
- oracle编译表上失效USERDBY脚本
对表进行DLL操作之后,依赖这个表的一些存储过程,触发器等会失效,可以用下边的脚本进行重编译 /* Formatted on 2020/7/8 上午 09:31:31 (QP5 v5.163.1008 ...
- [XAML] 使用 XAML 格式化工具:XAML Styler
1. XAML 的问题 刚入门 WPF/UWP 之类的 XAML 平台,首先会接触到 XAML 这一新事物.初学 XAML 时对它的印象可以归纳为一个词:一坨. 随着我在 XAML 平台上工作的时间越 ...
- Gulp4.0入门和实战
gulp4.0入门和实战 我最近遇到需要优化web的性能的任务,然后就捣鼓了一些对资源文件优化压缩的方案.由于之前的项目中有使用到gulp,所以在需要处理的web项目中也优先使用这个技术. 先聊聊gu ...
- Centos7下安装MySQL8.0.23-小白的开始
首先简单介绍一下什么叫MySQL: 数据库简而言之就是存储数据的仓库,为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上.是为了实现一定的目的,按照某种规则组织起来的数据的集合: MySQL ...
- LocalDateTime去掉T
最近在使用阿里巴巴的fastjson反序列化对象的时候,对象里面时间格式属性总是会多了一个T 2021-1-09T18:29:09.097 这个T是啥国际标准,但是我们的前端又不需要这个T,所以就要 ...