Git-如何区分使用个人账户和公司账户
个人日常编写点小玩具,code 的版本控制一般托管于GitHub,但是公司内部使用 GitLb 来进行代码版本控制,这样为了能够在同一台 MacBook(自带,公司有补贴)日常区分出两个账户,通过翻阅资料做了如下配置。
操作环境
MacBook

Git(git version 2.39.5)
命令行终端
SSH密钥生成
在终端,使用个人邮箱和公司邮箱分别生成 SSH key:
#创建公司的SSH-Key
ssh-keygen -t rsa -C "you@yourcompany.com" -f ~/.ssh/id_rsa
#创建个人的SSH-Key
ssh-keygen -t rsa -C "schacon@mylaptop.local" -f ~/.ssh/id_rsa_personal
同时会生成对应的公钥,以.pub为文件后缀,这个公钥是用来上传到 Git 托管服务器的,用来进行 SSH 通讯。生成的密钥文件如下图所示:

基于 SSH config 的隔离
有了上面的密钥,如何进行账户的隔离呢?很简单,通过指定密钥。在~/.ssh下创建 config 文件,如果没有的话:
# 创建配置文件
touch config
然后在 SSH config 文件中分别指定账户:
# 个人
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_personal
# 公司
Host gitlb.yourcompany.com # 替换为你的公司托管服务器
HostName gitlb.yourcompany.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
区分账户
由于公司的项目远远多于个人项目,我一般把公司账户作为 Git 的全局使用账户(当然你也可以正好相反):
# 全局配置默认使用公司账户
git config --global user.name "you" && git config --global user.email "you@yourcompany.com"
然后个人项目目录下每次执行(如果你有更好的方法欢迎评论区指教)
# 个人项目配置,每次新创建项目都需要执行
git config --local user.name "schacon" && git config --local user.email "schacon@mylaptop.local"
这样,把公钥上传到远程 Git 托管服务器后,就可以分别在公司和个人项目里使用对应的 Git 账户了。
以上。
Reference
如果这篇文字对你有帮助,你又恰好想握手言谢,那么可以请我喝杯咖啡:

Git-如何区分使用个人账户和公司账户的更多相关文章
- 关于git不区分文件名大小写的处理
今天遇到了git不区分文件名大小写的问题,一开始着实郁闷了一把. 处理办法: windows下在git中修改文件的大小写 git mv --force myfile MyFile 或者 git mv ...
- IOS 发布被拒 PLA 1.2问题 整个过程介绍 02 个人账户升级公司账户
首先,根据上一篇文章得出结论: 1.个人账户,可以发布非营销的APP.例如:公司企业站.个人站 2.公司账户,可以发布营销的APP.例如:京东,天猫,带有盈利的APP 3.企业账户,是使用在公司内部的 ...
- git 不区分文件大小写的处理
- IOS 发布被拒 PLA 1.2问题 整个过程介绍 03 个人账户升级公司账户
根据上一篇文章,提交的邮件,苹果给我回了一封邮件 如下: 您好: 感谢您参与 Apple 开发者计划支持.我是 XXXX,非常荣幸协助您. 我们随时都可以开始将您的个人会员资格迁移到组织会员资格.首先 ...
- Git 的核心概念解读
本文不是Git使用教学篇,而是偏向理论方面,旨在更加深刻的理解Git,这样才能更好的使用它,让工具成为我们得力的助手. 版本控制系统 Git 是目前世界上最优秀的分布式版本控制系统.版本控制系统是能够 ...
- git笔记--git@OSC
之前安装了git,用了不久就升级系统了,发现又忘记了步骤,虽然网上有很多教程,但寻找需要浪费太多的时间,由于github连接比较慢,所以使用了开源中国的托管http://git.oschina.net ...
- git文章列表
关于gitlab默认clone协议 Git实现从本地加入项目到远程仓库 翻翻git之---一个简单的标签控件 LabelView (随手发了两张小宝宝的玩耍照) id=1125" targe ...
- 如何让Git适应敏捷开发流程?
一旦涉及到版本控制系统,Git实际上代表敏捷开发的水平.Git作为一款强大的开源系统,有较强的灵活性,可以按需匹配任何开发团队的工作流程.而这种分布式相比较集中式来说,可以赋予系统更好的性能特征,且允 ...
- git checkout 提示 “error: The following untracked working tree files would be overwritten by checkout” 解决
问题描述 Windows 或者 macOS 操作系统中,文件名是不区分大小写的.对于已经提交到仓库中的文件修改文件名的大小写,然后又用 git rm 命令将老文件从 Git 仓库删除掉,并保存下新的文 ...
- Git 核心概念
原文链接 Git的核心概念 聪聪的个人网站 本文不是Git使用教学篇,而是偏向理论方面,旨在更加深刻的理解Git,这样才能更好的使用它,让工具成为我们得力的助手. 版本控制系统 Git 是目前世界上最 ...
随机推荐
- Scala List集合 List 有序不唯一,元素可重复
package com.wyh.day01 import scala.collection.mutable.ListBuffer /** * List 有序不唯一,元素可重复 */ object Sc ...
- mysql 获取数据库名、表名、字段名、根据表结构创建新表
1.查询当前使用的数据库 select database(): 2.获取当前数据库表 select * from information_schema.TABLES where TABLE_SCHEM ...
- Echarts与Vue3中获取DOM节点可能出现的异常错误
useTemplateRef 的简单介绍 官方:返回一个浅层 ref,其值将与模板中的具有匹配 ref attribute 的元素或组件同步. 参数匹配机制:useTemplateRe的参数需与模板 ...
- mac地址查询
打开命令提示符窗口(cmd程序) 快捷键 win+r 打开运行窗口,输入 cmd 命令打开 命令提示符窗口 或者点击开始菜单,在搜索程序和文件输入框,输入 cmd(会找到进入dos命令的cmd程序) ...
- js解析json字符串、对象与json之间的转换
前言 在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键. js解析json字符串 // JSON字符串 'v ...
- EmlBuilder:一款超轻量级的EML格式电子邮件阅读和编辑工具
EmlBuilder 是一款超轻量级的电子邮件阅读和编辑工具,针对EML格式的文件具有非常强大的解析和容错能力,可实现超文本邮件的编写,并具备内嵌图片的编辑功能.该工具内部使用EmlParse对电子邮 ...
- 插入排序(LOW)
博客地址:https://www.cnblogs.com/zylyehuo/ # _*_coding:utf-8_*_ def insert_sort(li): for i in range(1, l ...
- 【Ubuntu】“Linux版PhotoShop”绘图软件的安装和汉化
[Ubuntu]"Linux版PhotoShop"绘图软件的安装和汉化 零.前言 最近换了Linux系统,但是写教程做PPT的时候还是得用到绘图软件,上网一查,总结对比之后发现Kr ...
- 🎀隧道代理ip使用
简介 隧道代理(Tunnel Proxy)是一种特殊的代理服务,它的工作方式是在客户端与远程服务器之间建立一条"隧道".这种技术常被用来绕过网络限制或提高网络安全性. 主要功能 I ...
- Git放弃本地修改,强制拉取最新版
git fetch –-all git reset –-hard origin/master git fetch : 下载远程的库的内容(不做合并): git reset :指令把HEAD指向mast ...