个人日常编写点小玩具,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-如何区分使用个人账户和公司账户的更多相关文章

  1. 关于git不区分文件名大小写的处理

    今天遇到了git不区分文件名大小写的问题,一开始着实郁闷了一把. 处理办法: windows下在git中修改文件的大小写 git mv --force myfile MyFile 或者 git mv ...

  2. IOS 发布被拒 PLA 1.2问题 整个过程介绍 02 个人账户升级公司账户

    首先,根据上一篇文章得出结论: 1.个人账户,可以发布非营销的APP.例如:公司企业站.个人站 2.公司账户,可以发布营销的APP.例如:京东,天猫,带有盈利的APP 3.企业账户,是使用在公司内部的 ...

  3. git 不区分文件大小写的处理

  4. IOS 发布被拒 PLA 1.2问题 整个过程介绍 03 个人账户升级公司账户

    根据上一篇文章,提交的邮件,苹果给我回了一封邮件 如下: 您好: 感谢您参与 Apple 开发者计划支持.我是 XXXX,非常荣幸协助您. 我们随时都可以开始将您的个人会员资格迁移到组织会员资格.首先 ...

  5. Git 的核心概念解读

    本文不是Git使用教学篇,而是偏向理论方面,旨在更加深刻的理解Git,这样才能更好的使用它,让工具成为我们得力的助手. 版本控制系统 Git 是目前世界上最优秀的分布式版本控制系统.版本控制系统是能够 ...

  6. git笔记--git@OSC

    之前安装了git,用了不久就升级系统了,发现又忘记了步骤,虽然网上有很多教程,但寻找需要浪费太多的时间,由于github连接比较慢,所以使用了开源中国的托管http://git.oschina.net ...

  7. git文章列表

    关于gitlab默认clone协议 Git实现从本地加入项目到远程仓库 翻翻git之---一个简单的标签控件 LabelView (随手发了两张小宝宝的玩耍照) id=1125" targe ...

  8. 如何让Git适应敏捷开发流程?

    一旦涉及到版本控制系统,Git实际上代表敏捷开发的水平.Git作为一款强大的开源系统,有较强的灵活性,可以按需匹配任何开发团队的工作流程.而这种分布式相比较集中式来说,可以赋予系统更好的性能特征,且允 ...

  9. git checkout 提示 “error: The following untracked working tree files would be overwritten by checkout” 解决

    问题描述 Windows 或者 macOS 操作系统中,文件名是不区分大小写的.对于已经提交到仓库中的文件修改文件名的大小写,然后又用 git rm 命令将老文件从 Git 仓库删除掉,并保存下新的文 ...

  10. Git 核心概念

    原文链接 Git的核心概念 聪聪的个人网站 本文不是Git使用教学篇,而是偏向理论方面,旨在更加深刻的理解Git,这样才能更好的使用它,让工具成为我们得力的助手. 版本控制系统 Git 是目前世界上最 ...

随机推荐

  1. Scala List集合 List 有序不唯一,元素可重复

    package com.wyh.day01 import scala.collection.mutable.ListBuffer /** * List 有序不唯一,元素可重复 */ object Sc ...

  2. mysql 获取数据库名、表名、字段名、根据表结构创建新表

    1.查询当前使用的数据库 select database(): 2.获取当前数据库表 select * from information_schema.TABLES where TABLE_SCHEM ...

  3. Echarts与Vue3中获取DOM节点可能出现的异常错误

    useTemplateRef 的简单介绍 官方:返回一个浅层 ref,其值将与模板中的具有匹配 ref attribute 的元素或组件同步. 参数匹配机制‌:useTemplateRe的参数需与模板 ...

  4. mac地址查询

    打开命令提示符窗口(cmd程序) 快捷键 win+r 打开运行窗口,输入 cmd 命令打开 命令提示符窗口 或者点击开始菜单,在搜索程序和文件输入框,输入 cmd(会找到进入dos命令的cmd程序) ...

  5. js解析json字符串、对象与json之间的转换

    前言 在数据传输流程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键. js解析json字符串 // JSON字符串 'v ...

  6. EmlBuilder:一款超轻量级的EML格式电子邮件阅读和编辑工具

    EmlBuilder 是一款超轻量级的电子邮件阅读和编辑工具,针对EML格式的文件具有非常强大的解析和容错能力,可实现超文本邮件的编写,并具备内嵌图片的编辑功能.该工具内部使用EmlParse对电子邮 ...

  7. 插入排序(LOW)

    博客地址:https://www.cnblogs.com/zylyehuo/ # _*_coding:utf-8_*_ def insert_sort(li): for i in range(1, l ...

  8. 【Ubuntu】“Linux版PhotoShop”绘图软件的安装和汉化

    [Ubuntu]"Linux版PhotoShop"绘图软件的安装和汉化 零.前言 最近换了Linux系统,但是写教程做PPT的时候还是得用到绘图软件,上网一查,总结对比之后发现Kr ...

  9. 🎀隧道代理ip使用

    简介 隧道代理(Tunnel Proxy)是一种特殊的代理服务,它的工作方式是在客户端与远程服务器之间建立一条"隧道".这种技术常被用来绕过网络限制或提高网络安全性. 主要功能 I ...

  10. Git放弃本地修改,强制拉取最新版

    git fetch –-all git reset –-hard origin/master git fetch : 下载远程的库的内容(不做合并): git reset :指令把HEAD指向mast ...