git 多用户配置(公司/个人)

news2024/11/19 19:39:21

背景

张三是一个程序员,他的英文名叫 outlaw,emial: outlaw@163.com。 张三入职了一家公司,公司给张三的企业邮箱是 zhangsan@company.com 这一次,他 0 元购了一台新笔记本,需要配置一下 git

git 账号配置

  • 配置全局用户名及邮箱
git config --global user.name 'outlaw'
git config --global user.email 'outlaw@163.com'
  • 查看用户名及邮箱
git config user.name # outlaw
git config user.email # outlaw@163.com

这下,张三电脑上所有的 git 提交信息都会以 outlaw 的名字提交记录,配置完用户信息之后,张三想要在 github 发布自己的个人项目,张三需要用 ssh 的方式传输。

从2021.8.13开始已经不支持账号密码方式推送了

 ssh

为了让两个linux机器之间使用ssh不需要用户名和密码。所以采用了数字签名RSA或者DSA来完成这个操作。

ssh-keygen 是一个认证密钥的生成、管理和转换的工具。采用密钥对的形式,生成一个私钥和一个公钥。可以用来做用于远程服务器的链接、Github 的 SSH 链接等。

ssh-keygen 的 详解 - 简书

配置公钥和私钥

# 输入
ssh-keygen -t rsa -C "outlaw@163.com" 
# 输出
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/outlaw/.ssh/id_rsa): /Users/outlaw/.ssh/outlaw_github_id_rsa #这里输入张三想要的 rsa 文件名
Enter passphrase (empty for no passphrase): # 这里是密码,不需要可以直接回车
Enter same passphrase again: # 同上
The key fingerprint is:
SHA256:itev5ap5JasdasdbCJNPA3bKs1cbuKBjjc1Wg7UeFI outlaw@outlawdeMacBook-Pro.local
The key's randomart image is:
+---[RSA 3072]----+
|   +E+           |
|  .+=o=          |
|  +.+*0o         |
| . C.++ .        |
|  + @.b+S.       |
| o o *oo+ .      |
|. = + oo...      |
| . . . ..+       |
|      oOooo      |
+----[SHA256]-----+
# 输出上面这一段说明已经创建成功了

这时在 .ssh 文件夹下可以看到创建了两个文件

# 输入
ls -la ~/.ssh

# 输出
outlaw_id_rsa     # 私钥(答应我永远不要告诉别人好吗)
outlaw_id_rsa.pub # 公钥 

张三把公钥配置到 github 之后,张三就可以把自己的项目推到 github 了

 

公司 git 账号配置

张三公司使用 gitlab,刚刚张三配置的公私钥是使用了自己的邮箱创建的,那么在公司的项目的公私钥应该使用公司邮箱创建,和上面的步骤一样

ssh-keygen -t rsa -C "zhangsan@company.com" 

创建完了,此时张三的电脑有两对公私钥

  • outlaw_github_id_ras | outlaw_github_id_ras.pub
  • zhangsan_gitlab_id_ras | zhangsan_gitlab_id_ras.pub

此时为了顺利进行各自的远程推送,还需要配置一下 git config

# ~/.ssh/config

# Github
Host github.com  #别名,随便定 后面配置地址有用(!!中文要去掉!!)
Hostname github.com #要连接的服务器
User outlaw #用户名
IdentityFile ~/.ssh/outlaw_github_id_rsa  #密钥文件的地址,注意是私钥

# 张三公司
Host lapisy #别名,随便定
Hostname github.com
User lapisy
IdentityFile ~/.ssh/zhangsan_gitlab_id_rsa

Git多用户,不同项目配置不同Git账号_Lange0x0的博客-CSDN博客_github 多个用户

配置完后可以通过一下命令测试是否能连接成功

# github
ssh -T git@github.com
# Hi outlaw! ...

# 张三公司
ssh -T git@ssh.company.net
# Welcome to GitLab, @zhangsan!

为项目配置用户信息

此时张三已经可以顺利推送项目到 github 或者 gitlab 了,但是张三在第一步的时候,使用的是 git config --global user.name 'outlaw' 所以他推送的所有信息都会以 outlaw 的名字推送上去,在公司项目上,张三肯定是不希望公司的人知道他的另一面是法外狂徒的,所以针对公司的项目,张三从公司远程库拉下来后,还需要给项目输入两行代码

cd ~/company/company-admin  # 公司项目目录

git config user.name 'zhangsan'
git config user.email 'zhangsan@company.com'

这时,张三在 company-admin 项目才能以 zhangsan 的名字提交信息。

张三想,公司几十个项目,每次都要这样配置,很容易忘记配置导致别人知道我真实身份的啊!

如果个人的项目很少的话,这样设置下也没问题。

 

使用 Include 解决用户信息问题

张三心里想,公司项目都在 company 目录下,那能不能给这个目录搞个配置,只要这个目录下的就是 zhangsan 而不是 outlaw 呢?

答案是可以!

首先创建一个文件

sudo vim ~/.gitconfig-company # 这个文件和 .gitconfig 同一目录好管理

内容如下:

# ~/.gitconfig-company

[user]
    name = zhangsan
    email = zhangsan@company.com 

然后去 .gitconfig 修改

在 .gitconfig 最后增加一行

# ~/.gitconfig

[http]

...

[includeIf "gitdir:~/company/"]
    path = .gitconfig-company

到这里,张三在 company 目录下的项目都会以 zhangsan 的名字提交,而 company 以外的项目都会以 outlaw 的名字提交了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/80792.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信公众号开发,获取openid,授权登录 WeChat-official-account-openid

微信公众号开发 功能:自动登录,获取个人信息,上传图片 超多麻烦的情况,怎样获取openid呢? 以下我给大家提供源码,文本,视频资料 保证让你看了就明白哈 look效果 1.拉起用户授权 2.后台获取到…

微服务雪崩问题解决 Sentinel

雪崩问题以及解决方案 限流设置 达到阈值的效果 隔离和降级 熔断 授权规则 设置规则持久化 雪崩问题以及解决方案雪崩微服务调用链路中的某个服务出现故障,引起链路上其他服务都不可用,这就是雪崩解决方案超时处理,设定超时时间,请…

【软件工程期末复习内容】

前言 时不可以苟遇,道不可以虚行。 一、软件工程的概念 软件是计算机系统运行的 指令、数据 和 相关文档 的集合,即软件等于程序、数据、加上文档。程序:是事先按照预定功能性能等要求设计和编写的指令序列;数据:是使…

Python编程 while循环

作者简介:一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.循环控制 1.循环控制介绍 2.while循环表达式 3.while循环表达式 4.b…

Python实现ALO蚁狮优化算法优化支持向量机回归模型(SVR算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蚁狮优化(Ant Lion Optimizer,ALO)算法是Mirjalili于2015提出的一种新型元启发式群智能算法…

47-linux-vim-安装以及权限等-缺少

47-linux-vim-安装以及权限等: vi编辑器简介 vim是一个全屏幕纯文本编辑器,是vi编辑器的增强版,我们主要讲解的是vim编辑器。可以利用别名让输入vi命令的时候,实际上执行vim编辑器,例如: [rootlocalhost ~]# alias v…

HTTP协议介绍

了解HTTP HTTP是什么呢?它是超文本传输协议,HTTP是缩写,它的全英文名是HyperText Transfer Protocol。 那么什么是超文本呢? 超文本指的是HTML,css,JavaScript和图片等,HTTP的出现是为了接收和…

一位全栈工程师转岗项目经理的初体验与总结

从上周开始,公司这边把我从全栈工程师的岗位调到了项目经理的岗位,开始尝试管理岗位,感觉换了一个岗位像是换了一份工作一样,又在次充满了干劲。开始新的项目,招纳新的项目成员,虽然都是在做软件开发的事情…

【手把手】分布式定时任务调度解析之Quartz

1、任务调度背景 在业务系统中有很多这样的场景: 1、账单日或者还款日上午 10 点,给每个信用卡客户发送账单通知,还款通知。如何判断客户的账单日、还款日,完成通知的发送? 2、银行业务系统,夜间要完成跑批…

CCF CSP认证——201312

文章目录201312-1 出现次数最多的数201312-2 ISBN号码201312-3 最大的矩形201312-4 有趣的数201312-5 I’m stuck!201312-1 出现次数最多的数 题目链接 数据量较小,且数据范围也比较小。可以直接暴力,通过设置数组记录下标数据出现的次数,最…

C/C++关键字

C/C关键字【1】extern "C"【2】asm【3】关键字auto【4】break语句【5】catch 语句【6】关键字class【7】关键字const【8】#if【9】#pragma once【10】#pragma pack(1)【11】#pragma pack(4)【12】explicit【】 continue语句【13】关键字enum【14】friend【15】goto语…

【springboot进阶】基于starter项目构建(二)构建starter项目-web

目录 一、创建 web-spring-boot-starter 项目 二、添加 pom 文件依赖 三、构建配置 1. rest模板配置 RestTemplateConfig 2. 统一异常处理 BackendGlobalExceptionHandler 3. 统一返回数据结构 4. jwt鉴权处理 5. 请求日志切面处理 WebLogAspect 6. 邮件配置 BackendM…

mysql数据同步到elasticsearch数据解决方案

mysql数据同步到elasticsearch数据解决方案 问题场景 1.分库分表后多关联或者多条件查找效率低下,例如2b场景的查询,导出等需要多条件查询,继续用分库分表话效率低下。 2.数据量太多需要转移非关系型数据库elasticsearch存储 3.其他数据转…

AI 实战篇 |基于 AI开放平台实现 【植物识别】 功能,成为行走的百科全书

🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉 🎄 学习专栏推荐:Unity系统学习专栏 🌲 游戏制作专栏推荐:游戏制作 &…

代码随想录刷题记录day40 爬楼梯+零钱兑换+完全平方数·

代码随想录刷题记录day40 爬楼梯零钱兑换完全平方数 参考:代码随想录 70. 爬楼梯 思想 当作完全背包问题,物品是1,2,可以无限次取用,背包的容量是n 1.dp[j]表示容量为j的背包,装满有dp[j]次 2.dp[j]dp…

【图像处理】opencv | 图像的二值化操作| cv2.threshold() | cv2.adaptiveThreshold()

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、cv2.threshold()阈值操作函数1.1、初见1.2、阈值不同时的效果二、cv2.adaptiveThreshold()自适应阈值操作函数2.1、初见2.2、固定blocksize,改变C值大小的实…

104-127-linux-vim-shell基础

104-linux-shell: 1.shell基础 分类:linux使用Bash,可通过vi /etc/shells查看linux支持的shell类型。 1、echo [rootlocalhost ~]#echo [选项] [输出内容] 选项:-e:支持反斜线控制的字符转换(具体百度吧)-n:取消输出后行末的换行符号&…

Python实现ALO蚁狮优化算法优化支持向量机分类模型(SVC算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蚁狮优化(Ant Lion Optimizer,ALO)算法是Mirjalili于2015提出的一种新型元启发式群智能算法…

185.基于Django的富文本编辑器安装与使用

1.DjangoUeditor 1.1 概述 富文本编辑器,在web开发中必不可少,但是django没有自带富文本编辑器,因此我们需要使用第三方库,这里使用DjangoUeditor DjangoUditor是百度开源的在线HTML编辑器,功能非常强大,像…

VUEElement简单介绍。

目录 一、VUE 1、基本介绍 2、Vue 指令 3、生命周期 二、Element 1、基本介绍 2、Element 布局 一、VUE 1、基本介绍 ▶ 概述 Vue 是一套前端框架,免除原生JavaScript中的DOM操作,简化书写。 我们之前也学习过后端的框架 Mybatis ,My…