本地配置多个git账户(公司、GitHub)

在公司探索新知识(摸鱼)时,我们一般会需要在GitHub上维护维护自己的小仓库。
这样如果使用原来的配置就会发生Push代码时Permission Denied了。
所以我们有以下几步:
公司电脑是Mac,所以以下内容均为Mac上的操作,但不同操作系统其实大同小异。

不同仓库配置不同的提交用户信息

我们在公司电脑上主要还是提交公司的代码,所以为了方便,git的global用户信息可以设置为公司要求的name和email。
在自己的仓库下配置git账号信息可以覆盖掉全局的。

cd <你的仓库地址>
git config user.name <你的GitHub账户名>
git config user.email <你的GitHub账户邮箱>

生成不同的ssh密钥

# -C后接邮箱地址,例:-C "aaa@qq.com"
# -f后接生成密钥的路径(同时包含了密钥的文件名),这样就不用在生成时单独输入密钥文件名
# 不同的密钥文件名要区分不同文件名,以下是GitHub的ssh密钥示例
ssh-keygen -t ed25519 -C "<GitHub邮箱>" -f ~/.ssh/id_ed25519_github

# 这之后直接回车就行了

进入ssh文件夹,可以看到我本地生成了两个,一个是默认名称id_ed25519,一个是GitHub的id_ed25519_github,分别还有它们的公钥。
在这里插入图片描述

创建ssh配置文件

在上图可以看到我的ssh文件夹下没有有config文件,如果从来没有配置过,那就创建这个配置文件。

vim ~/.ssh/config

# vim新手教程
# 按i键进入插入模式(进入插入模式才能输入内容),左下角有INSERT字样
# 输入完毕后按ESC突出插入模式,左下INSERT消失
# 按 :(英文) 键进入命令模式,光标移到了窗口最底下
# 输入wq保存并退出(w:保存,q:退出,可单独使用)

# config文件插入以下内容,多个账号可以配置多组,中间建议间隔一行,这里只实例GitHub
Host git@github.com
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_github

# Host 为使用ssh时的别名,在之后配置仓库远程地址时用到
# HostName 为远程仓库的域名
# User 一般为git,了解到好像填其他的也没太大影响
# IdentityFile 为生成的对应的ssh密钥文件

在远程仓库添加ssh公钥

GitHub官方教程

# 将公钥打印到命令行中方便复制
cat ~/.ssh/id_ed25519_github.pub
  1. 在任何页面的右上角,单击您的个人资料照片,然后单击 Settings(设置)。在这里插入图片描述
  2. 在用户设置侧边栏中,单击 SSH and GPG keys(SSH 和 GPG 密钥)。在这里插入图片描述
  3. 单击 New SSH key(新 SSH 密钥)或 Add SSH key(添加 SSH 密钥)。
    在这里插入图片描述
  4. 刚刚复制的公钥内容粘贴到下图Key中,Title写上方便你自己认识这个密钥的描述性内容在这里插入图片描述

测试ssh链接

ssh -T git@github.com
# 这里-T后面接上的就是之前config文件中的Host别名

# 如果看到以下内容,说明你已经成功了
# Hi <你的GitHub账户名>! You've successfully authenticated, but GitHub does not provide shell access.

配置仓库远程地址

# 原来配置远程仓库地址时我们使用https地址
git remote add origin https://github.com/<你的GitHub账户名称>/<你的仓库名称>.git

# 现在我们使用config文件中的Host别名
git remote add origin git@github.com:<你的GitHub账户名称>/<你的仓库名称>.git

使你的ssh密钥持续生效

但我之所以写下这篇文章,就是因为我不是第一次配置了。
为了方便你以后不用再麻烦,请继续看。
当你重启一次电脑后,你的ssh密钥就没有被托管了,push代码的时候就会Permission Denied。
当然你可以重复以上步骤解决,但我们希望有更优雅的解决方式。原因在这个文章里说了,感兴趣的可以了解一下。
是否必须每次添加ssh-add

我们可以通过ssh-add命令将我们的ssh密钥重新添加到ssh-agent进行代理托管

ssh-add ~/.ssh/id_ed25519_github

但是仍然会出现重启后失效的问题,所以我们可以将这个命令添加到命令行配置文件中。

vim ~/.zshrc

# 添加以下内容,亦可添加多个密钥
# 将GitHub的ssh密钥添加到ssh-agent
ssh-add ~/.ssh/id_ed25519_github
# 然后保存退出
首先,你需要创建一个新的Spring Boot项目,例如命名为`hystrix-demo`。这个项目将作为客户端,依赖于Eureka Server来实现服务发现。以下是步骤: 1. **初始化Hystrix-Demo项目**: - 使用Maven或Gradle初始化新项目,选择合适的模板,如Spring Initializr网站生成一个基本的Spring Boot Web应用项目结构。 - 添加必要的依赖,包括Spring Cloud Hystrix(用于处理断路器和熔断机制)、Spring Cloud Netflix Eureka Client(用于与Eureka Server通信),以及Spring Cloud Config(如果需要外部配置管理)。 ```xml <!-- Maven --> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency> </dependencies> // Gradle implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' implementation 'org.springframework.cloud:spring-cloud-starter-hystrix' ``` 2. **添加Eureka-server依赖**: 如果Eureka-server项目已经存在并且使用的是2.2.1版本,将其作为一个远程仓库或者本地模块引入到hystrix-demo的pom.xml或build.gradle文件中。确保eureka-server提供了一个可用的注册中心服务。 3. **配置Eureka Client**: 在`hystrix-demo`项目的application.yml或application.properties中配置Eureka Client的相关信息,比如Eureka服务器的URL地址、服务名等。 ```yaml eureka: client: serviceUrl: defaultZone: http://localhost:8761/eureka/ instance: hostname: localhost appname: your-app-name ``` 4. **启动和测试**: - 启动eureka-server项目,确认其正常运行。 - 配置好后,运行hystrix-demo项目,它应该能够自动去Eureka Server注册并从那里获取其他微服务的信息。 完成以上步骤后,你就成功地在hystrix-demo项目中集成了一个依赖于eureka-server的子项目,并实现了服务发现功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值