Git使用 从入门到入土 收藏吃灰系列 (七) 同时配置Gitee、Github 公钥

文章目录

  • 一、前言
  • 二、同时配置Gitee、Github 公钥

一、前言

  • 参考安装Git 详细安装教程
  • 参考视频B站 Git最新教程通俗易懂,这个有点长,感觉讲的精华不多
  • 参考视频『Git』知道这些就够了_哔哩哔哩_bilibili,这个精华多,推荐看这个
  • 参考视频7小时学会Git 基础全套完整教程(从入门到精通)_哔哩哔哩_bilibili,这个虽然长,但是他偏实践,对小白友好,特别有意思
  • 附一个Git动画学习网站
  • Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)

讲讲小张的感受:我没有接触过Git,所以看了很多视频,对于入门使用确实只要知道git clone,git add,git commit,git push,git merge ,确实也就足够了。但是我很好奇背后的原理,为什么要用git add到暂存区而不是直接git commit?很多指令之间为什么要按一定的顺序执行?所以这个系列我以初学的时候,小白的角度从安装到工作原理(有的是我自己的见解,如果感觉不对,欢迎指正),再到实际应用!另外,推荐看一遍第三个参考视频,然后看一下第四个参考视频,对工作原理的讲解和实际应用确实不错!

二、同时配置Gitee、Github 公钥

这种方法使用同时配置多个gitee账号或者同时配置gitee、github、gitlab

问题
本地已配置了gitee公钥,如何配置GitHub支持ssh拉取源码?

思路
ssh 方式链接到 Github/Gitee,需要唯一的公钥,如果想同一台电脑绑定两个Github/Gitee 帐号,需要两个条件:
1.能够生成两对 私钥/公钥
2.push 时,可以区分两个账户,推送到相应的仓库

1.创建 ssh key

进入 C:\Users\用户名\.ssh 目录 右击Git Bash Here。输入

ssh-keygen -t rsa -C "密钥名称 随便命名" -f "文件名字"

例如(分两次输入),连按三次回车

ssh-keygen -t rsa -C "GC_Zhang" -f "id_rsa_gitee"
ssh-keygen -t rsa -C "GC-ZF" -f "id_rsa_github"

Git使用 从入门到入土 收藏吃灰系列 (七) 同时配置Gitee、Github 公钥_第1张图片

完成后,会在 C:\Users\用户名\.ssh 文件夹下生成github和码云的私钥和公钥文件

Git使用 从入门到入土 收藏吃灰系列 (七) 同时配置Gitee、Github 公钥_第2张图片

2.把公钥文件中的 key 复制到 github 和gitee的ssh公钥中
打开 id_rsa_gitee.pub,把相关 ssh key复制到 gitee 的 设置>ssh公钥 中,标题和公钥不用保持一致

Git使用 从入门到入土 收藏吃灰系列 (七) 同时配置Gitee、Github 公钥_第3张图片

打开 id_rsa_github.pub,把相关 ssh key复制到 github 的 Settings>SSH and GPG keys

Git使用 从入门到入土 收藏吃灰系列 (七) 同时配置Gitee、Github 公钥_第4张图片

3.创建config 文件解决ssh 冲突

在 .ssh 的命令窗口下执行 vi config 在 config 文件中添加以下代码,完成后按Esc输入 :wq 保存退出
也可以直接在文件夹中新建文本,命名config并删掉后缀.txt

# 格式
# xxx(#号是注释,给这段加一个备注,不想加也可以)
	Host 任意主机别名
    HostName 域名地址
    IdentityFile ~/.ssh/自己的ssh key的文件路径
    PreferredAuthentications publickey
    User 注册gitee/github/gitlab的用户名
# 参数说明
# Host : 每个Host要取一个别名
# HostName : 要访问的域名地址
# IdentityFile : 指明上面User对应的identityFile路径

eg:这里Host可以命名其它汉字、名字,我只是为了第4步方便

# Gitee 
    Host gitee.com
    HostName gitee.com
    IdentityFile ~/.ssh/id_rsa_gitee
    PreferredAuthentications publickey
    User GC-Zhang

# Github      
    Host github.com
    HostName github.com
    IdentityFile ~/.ssh/id_rsa_github
    PreferredAuthentications publickey
    User GC-ZF

4.测试SSH key是否生效

ssh -T git@自己配置的Host别名	# 必须区别大写T

Git使用 从入门到入土 收藏吃灰系列 (七) 同时配置Gitee、Github 公钥_第5张图片

出现Hi GC_Zhang! You've successfully authenticated, but GITEE.COM does not provide shell access.就代表配置成功

5.设置单个仓库的配置

如果要区分Github和Gitee的用户提交信息 ,可以把常用的一个设置为全局变量。单独为另一个账号的仓库设置用户信息,这样就不用频繁地做这步。git 的配置分为三级别,System —> Global —>LocalSystem 即系统级别,Global 为配置的全局,Local 为仓库级别,优先级是 Local > Global > System

eg:常用Github,偶尔用Gitee,那么Github的用户信息不用做修改。

克隆Gitee的仓库(每一次克隆新仓库都要重新设置),进入项目文件夹单独设置。查看一下现在的全局配置是什么?

git config --global --list

image-20220121102504826

单独为仓库配置一个用户名(后来我发现不加local后缀也是默认local)

# 单独设置仓库 用户名/邮箱 如果没有空格可以不用引号
git config --local user.email "xxx"
git config --local user.name "[email protected]"

g-cYhlHujk-1644402318313

查看本地仓库配置

git config --local --list

Git使用 从入门到入土 收藏吃灰系列 (七) 同时配置Gitee、Github 公钥_第6张图片

提交一次记录,现在日志里的信息就是新设置的用户信息,但仅对当前仓库有效

Git使用 从入门到入土 收藏吃灰系列 (七) 同时配置Gitee、Github 公钥_第7张图片

多台电脑使用统一的 ssh 文件

.ssh 文件夹压缩保存,在其他电脑上解压放入对应的目录下
这里需要注意id_rsa 和id_rsa.pub的权限,id_rsa的权限是600,id_rsa.pub的权限是644。

如果上述方法不能通过测试,则需要在目标设备先创建好同名的 ssh ,然后用之前的 私钥和公钥覆盖掉目标设备上的文件

参考

这部分参考了这两个,但是稍微做了改进,因为他们是删除全局配置,之后重新配置。我认为不需要对原来的配置删除,将常用的作为全局配置,需要使用另一个不常用的账号的时候再单独配置一个本地配置

从永远到永远-Windows10配置多个git账号(以两个gitee账号为例)_MACHENIC的博客-CSDN博客

亲测本地电脑同时配置gitee和github账号,实现ssh免密拉取和提交代码_初学者乐园的博客-CSDN博客

第四步可能会遇到一些报错,可以参考这篇文章。因为我的电脑没报错但朋友的有报错,所以没演示

[email protected]: Permission denied (publickey)_勿忘初心的博客-CSDN博客[email protected]

下一期介绍

  • 什么是分支?
  • 分支的作用?

专栏速览:

  1. Git使用 从入门到入土 收藏吃灰系列(一) 专栏前言
  2. Git使用 从入门到入土 收藏吃灰系列(二) Git的安装与配置
  3. Git使用 从入门到入土 收藏吃灰系列(三) Git常用命令
  4. Git使用 从入门到入土 收藏吃灰系列(四) Git工作原理
  5. Git使用 从入门到入土 收藏吃灰系列(五) Git本地仓库搭建
  6. Git使用 从入门到入土 收藏吃灰系列(六) 链接远程仓库
  7. Git使用 从入门到入土 收藏吃灰系列 (七) 同时配置Gitee、Github 公钥
  8. Git使用 从入门到入土 收藏吃灰系列 (八) 什么是分支 分支的作用
  9. Git使用 从入门到入土 收藏吃灰系列 (九) git reset 移除暂存区与版本回退
  10. Git使用 从入门到入土 收藏吃灰系列 (十) 详谈push、fetch、pull
  11. Git使用 从入门到入土 收藏吃灰系列 (十一) 下载所有远程仓库分支
  12. Git使用 从入门到入土 收藏吃灰系列 (十二) git merge 与 git rebase
  13. Git使用 从入门到入土 收藏吃灰系列 (十三) git stash、git check-pick、git tag、git diff
  14. Git使用 从入门到入土 收藏吃灰系列 (十四) 清除git仓库的所有提交记录
  15. Git使用 从入门到入土 收藏吃灰系列 (十五) 自定义Git命令
  16. Git使用 (十六) Github上的小按钮
  17. Git使用 (十七) 解决Git Bash中文乱码

你可能感兴趣的:(Git,&,原理,&,指令,学习,git,github)