# Git 同时配置 Github 和 Gitee

# 配置

# 清除全局配置

  • 查看是否设置过全局配置
$ git config --global --list
  • 清除全局配置(如果无可跳过)
$ git config --global --unset user.name "Your Name"
$ git config --global --unset user.email You@example.com

# 创建 ssh 公钥

ssh-keygen 说明

  • 参数 -t :公钥类型,如 rsadss
  • 参数 -C :注释,为了添加一个可辨认的标识,以便识别
  • 参数 -f :公钥保存文件路径,及文件名可自行取名,如 -t rsa 则公钥保存文件默认为 id_rsa
$ ssh-keygen -t rsa -C "xxx@qq.com" -f ~/.ssh/github_id_rsa
# 接下来提示设置密码,无需设置密码,直接回车
$ ssh-keygen -t rsa -C "xxx@qq.com" -f ~/.ssh/gitee_id_rsa

如没有反应,可能没有添加环境变量,添加环境变量 Git安装目录/usr/bin

~/.ssh/ 目录下生成以下文件

  • github_id_rsa
  • github_id_rsa.pub
  • gitee_id_rsa
  • gitee_id_rsa.pub

# 识别 SSH key 新的密钥

默认只读取 id_rsa ,为了让 SSH 识别新的私钥,需要将新的私钥加入到 SSH agent

$ ssh-agent bash
$ ssh-add ~/.ssh/github_id_rsa
$ ssh-add ~/.ssh/gitee_id_rsa

# 多账号配置 config 文件

1、创建 config 文件

$ touch ~/.ssh/config

2、config 中填写的内容,可用 vim 编辑器

Git
vim ~/.ssh/config
# Gitee
Host gitee.com
    HostName gitee.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/gitee_id_rsa
# GitHub
Host github.com
    HostName github.com
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/github_id_rsa

# 添加 ssh

  • https://github.com/settings/keys,将 github_id_rsa.pub 中的内容填进去,起名的话随意。

  • https://gitee.com/profile/sshkeys,将 gitee_id_rsa.pub 中的内容填进去,起名的话随意。

# 测试 ssh 连接

$ ssh -T git@github.com
$ ssh -T git@gitee.com

第一次连接会提示输入 yes/no ,输入 yes 即可

# 不同平台共用一个本地仓库

# 关联远程仓库

# Gitee
$ git remote add gitee git@gitee.com:xxx/xxx.git
# Github
$ git remote add github git@github.com:xxx/xxx.git
# example
$ git remote add github git@github.com:Haroldpopo/Blog.git
$ git remote add gitee git@gitee.com:Harold_popo/Harold_popo.git

# 推送远程仓库

# 先 pull 拉取远程仓库的文件更新到本地仓库
$ git pull gitee master
# 如果出现![rejected] master -> master (non-fast-forward) error:failed to push some refs to XXX,则
# git pull gitee master --allow-unrelated-histories
# Gitee
$ git push gitee master
# Github
$ git push github master

# 提交代码仍需用户名、邮箱

多平台账号下全局配置已清除,提交代码如果还需要我们的用户名、邮箱

在我们的工作目录(项目)里配置即可:

# Github
$ git config user.name 'Haroldpopo'
$ git config user.email 2417525822@qq.com
# Gitee
$ git config user.name 'Harold'
$ git config user.email 2417525822@qq.com

vgy.me

# 使用流程

以 Gitee 的 Harold_popo/Harold_popo.git 为例

# 初始化当前仓库
$ git init
# 当前工作目录(项目)创建用户名、邮箱
$ git config user.name "Harold"
$ git config user.email 2417525822@qq.com
# 关联远程仓库
$ git remote add gitee git@gitee.com:Harold_popo/Harold_popo.git
# 同步远程仓库到本地仓库
$ git pull gitee master
# git pull gitee master --allow-unrelated-histories
# 查看所有分支
$ git branch -a
# 查看缓存区状态
$ git status .
# 将所有已添加、已删除或已修改文件添加至缓存区
$ git add .
# 发送提交信息
$ git commit -m "commit test"
# 推送到远程仓库
$ git push gitee master
Edited on Views times

Give me a cup of [coffee]~( ̄▽ ̄)~*

Harold WeChat Pay

WeChat Pay

Harold Alipay

Alipay