Git 多个GitHub账号配置和多个Hexo博客地址配置

2024-04-14 05:18

本文主要是介绍Git 多个GitHub账号配置和多个Hexo博客地址配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 需求场景
    • 方法
      • TL;DR
      • 非图形界面方法
        • 1. 生成密钥
        • 2. 配置config
        • 3. 添加新的 SSH 密钥 到 SSH agent
        • 4. 验证配置
        • 5. 配置仓库设置
          • 5.1 删除全局配置
          • 5.2 设置local配置
        • 6. 示例
          • 6.1 将本地仓库推送到远程仓库(github)
          • 6.2 hexo 配置文件修改git地址
        • 7 问题反馈
          • 7.1 名称一致性
          • 7.2 证书导致的被拒绝问题
          • 7.3 https的方法
      • 图形界面方法

需求场景

  1. 工作github, 个人github多个账号使用问题。
  2. 多个hexo或者其它博客,发布问题。(一个GitHub账号只能搭建一个Hexo博客)

方法

TL;DR

可能对于用SVN习惯的同学,简单的办法是用图形界面的方法,可以直接跳到对应的小节查看
点击跳转

非图形界面方法

说明:命令Terminal用的是Git Bash,否则可能会有权限的问题。

1. 生成密钥

命令进入 SSH根目录(根据自己的实际情况来)
cd ~/.ssh/
直接使用以下命令创建新密钥,然后两次回车即可(建议用下面的命令可以直接在指定目录生成指定密钥):
ssh-keygen -t rsa -f ~/.ssh/这里是新密钥名称 -C "这里是你的邮箱"
比如我的两个密钥
rsa_home
rsa_work

注意区别新密钥名称和旧密钥名称,不要相同!!!

2. 配置config

查看你的 .ssh/根路径下, 有没有config文件,( 比如我的路径为C:\Users\lee.ssh)要注意一定是这个路径下的config,这关系到里面的具体路径配置
没有则使用以下命令创建一个config文件:
touch config
用记事本或者其他工具打开config文件(注意config文件是没有任何后缀名的),写入以下配置:

# home
Host home # 前缀名可以任意设置
HostName ssh.github.com
User git
IdentityFile ~/.ssh/rsa_home # 自己对应的密钥路径# work
Host work # 前缀名可以任意设置
HostName ssh.github.com
User git
IdentityFile ~/.ssh/rsa_work # 自己对应的密钥路径
3. 添加新的 SSH 密钥 到 SSH agent
ssh-add rsa_home # 第一个密钥名称
ssh-add rsa_work # 第二个密钥名称

如果执行以上命令出现错误:Could not open a connection to your authentication agent.,那么就需要先执行ssh-agent bash,再执行以上命令。

4. 验证配置

验证时注意与config的Host名字对应

使用命令cd ~/.ssh,cd到.ssh根目录下,依次执行以下命令:

ssh -T git@home // 与上面配置的Host 名字对应
ssh -T git@work // 与上面配置的Host 名字对应

如果出现下面结果,说明已经正常工作:

Hi xxxx! You've successfully authenticated, but GitHub does not provide shell access.
5. 配置仓库设置

首先需要删除git配置的全局用户名和邮箱.接着在自己每个项目的仓库中按照需要设置不同的user.name和user.email。

5.1 删除全局配置
git config --global --unset 'user.name'
git config --global --unset 'user.email'
5.2 设置local配置

在自己的每个文件夹(repo仓库)下,打开Git Bash,然后进行设置。

git config user.name `xxx`
git config user.email `xxx@xxx.com`

注意,在设置结束之后,创建git repo(git init)的时候,一定要再次检查一下用户名和用户邮箱,如果不对, 需要再次设置.

执行以下命令可以查看设置是否成功
git config --list

6. 示例
6.1 将本地仓库推送到远程仓库(github)

之后再添加远程仓库的时候,就不能直接使用https的方式了,只能使用ssh方式.

git remote add origin git@home: home/example.git # home account
git remote add origin git@work: work/example.git # work account

其中 home 或者 work 就是在配置文件中设置的 Host.

然后使用git remote -v确认是否连接上。

最后进行推送.
git push origin master
其实,上面的配置文件的意思就是,按照你设置远程仓库时使用不同的Host名称,查找~/.ssh/config文件使用不同的SSH 文件连接到GitHub。这样你就将是以不同的身份访问GitHub仓库。

6.2 hexo 配置文件修改git地址

假设存在home和work两个不同的hexo博客,打开博客Hexo目录下的_config.yml文件,找到deploy关键字,写入以下配置并保存。

deploy:type: gitrepository: git@home:firstblog/firstblog.github.io.git  # firstblog为对应的博客地址名称branch: master
deploy:type: gitrepository: git@home: secondblog/secondblog.github.io.git  # secondblog为对应的博客地址名称branch: master

再次执行hexo g -d就能成功将新的博客部署到 Github

7 问题反馈
7.1 名称一致性

(之前遇到问题就在这里)
比如在config中配置了home
那么对应的验证命令为:
ssh -vT git@home
在push的时候也要做相应的修改
git remote add origin git@home: home/example.git # home account
而不是
git remote add origin git@github.com: home/example.git # home account

7.2 证书导致的被拒绝问题

参考网址
github push failed (remote: Permission to userA/repo.git denied to userB.)
原因:该电脑使用git bash配过SSH,系统已经将指向github.com的用户设置为了userB,每次push操作的时候,都将读取到userB的用户信息,类似于记住密码。

  1. 打开 控制面板–>用户–>证书管理–>系统证书
  2. 展开 git:https://github.com 并删除之。

在这里插入图片描述

7.3 https的方法

参考网址 一台电脑如何同时使用两个github账号
项目的url应该配置成:
https://YourGithubName:YourGithubPassword@github.com/YourGithubName/YourProjectName.git
不想把你的github密码暴露出来的话把上面的:YourGithubPassword去掉就可以了,这个时候每次提交需要你手动输入密码。
如何你采用了上面的建议的话,记得不要执行下面的git命令:

git config --global user.name "John Doe"
git config --global user.email "johndoe@example.com"

如果你已经执行过了,那可以执行:

git config --global --unset user.name "John Doe"
git config --global --unset user.email "johndoe@example.com"

图形界面方法

TortoiseGIT,使用教材讲的很细。
下载地址
使用教材一
使用教材二
注意2个地方

  1. 通过Puttygen.exe生产SSHKey,复制到对应github的SSHKey配置的地方,并保存在本地以便后续使用。(在安装tortoisegit的时候,默认还会安装有Puttygen.exe这个程序,这个程序是可以生成putty密钥的。)
  2. 把生产的SSHkey加载到git中,Pageant.exe也是安装tortoisegit,默认安装的。(使用TortoiseGit进行和远端输出项目时,Pageant必须启动且添加了对应的私钥。否则会报错)

参考文章:
如何在一台电脑上设置多个github账号
一台电脑使用两个/多个GitHub账号部署两个/多个Hexo博客

这篇关于Git 多个GitHub账号配置和多个Hexo博客地址配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/902162

相关文章

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

Nginx 重写与重定向配置方法

《Nginx重写与重定向配置方法》Nginx重写与重定向区别:重写修改路径(客户端无感知),重定向跳转新URL(客户端感知),try_files检查文件/目录存在性,return301直接返回永久重... 目录一.try_files指令二.return指令三.rewrite指令区分重写与重定向重写: 请求

Nginx 配置跨域的实现及常见问题解决

《Nginx配置跨域的实现及常见问题解决》本文主要介绍了Nginx配置跨域的实现及常见问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来... 目录1. 跨域1.1 同源策略1.2 跨域资源共享(CORS)2. Nginx 配置跨域的场景2.1

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的