配置GitHub 和Gitee共存环境

前言

  • Git共有三个级别的config文件,分别是system、globallocal

  • 在当前环境中,分别对应

    • %GitPath%\mingw64\etc\gitconfig 文件

    • %RepoPath%\.git\config 文件

    • $home\.gitconfig 文件

      note: 其中%GitPath%为 Git的安装路径,%RepoPath%为某仓库的本地路径。

  • 所以 system 配置整个系统只有一个,global 配置每个账户只有一个,而 local 配置和git仓库的数目相同,并且只有在仓库目录才能看到该配置。

准备

  1. git工具: https://git-scm.com/downloads

  2. GitHub账号: https://github.com

  3. Gitee账号: https://gitee.com

配置

  1. 清除 git 的全局设置

    • 查看全局变量

      git config --global --list
    • 清除全局user.nameuser.email

      git config --global --unset user.name
      git config --global --unset user.email

      note: 此方案适合只使用GitHub 或Gitee(可以试试GitHub和 Gitee使用同一个账号)

  2. 生成并添加 SSH Keys

  3. 多环境配置config文件

    • ~/.ssh/目录下创建config文件

      touch ~/.ssh/config

    • 配置config文件内容

      • 最简配置

        # GitHub
        Host github.com
        HostName github.com
        IdentityFile ~/.ssh/id_ed25519
      • 完整配置

        # Default gitHub user Self
        Host github.com
        HostName github.com
        User git
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_ed25519
        AddKeysToAgent yes # Add gitee user
        Host gitee.com
        HostName gitee.com
        User git
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/id_ed25519
        AddKeysToAgent yes
      • 参数解释

        • Host

          它涵盖了下面一个段的配置,我们可以通过他来替代将要连接的服务器地址。
          这里可以使用任意字段或通配符。
          当ssh的时候如果服务器地址能匹配上这里Host指定的值,则Host下面指定的HostName将被作为最终的服务器地址使用,并且将使用该Host字段下面配置的所有自定义配置来覆盖默认的/etc/ssh/ssh_config配置信息。
        • Port

          自定义的端口。默认为22,可不配置
        • User

          自定义的用户名,默认为git,也可不配置
        • HostName

          真正连接的服务器地址
        • PreferredAuthentications

          指定优先使用哪种方式验证,支持密码和秘钥验证方式
        • IdentityFile

          指定本次连接使用的密钥文件
        • AddKeysToAgent yes

          将私钥加载到 ssh-agent,
          等同于 ssh-add ~/.ssh/id_ed25519

检验

  1. clone 测试

    • GitHub 项目

      $ git clone git@github.com:librarookie/spring-boot.git
      
      Cloning into 'spring-boot'...
      remote: Enumerating objects: 15, done.
      remote: Total 15 (delta 0), reused 0 (delta 0), pack-reused 15
      Receiving objects: 100% (15/15), done.
    • Gitee 项目

      $ git clone git@gitee.com:librarookie/test.git
      
      Cloning into 'test'...
      remote: Enumerating objects: 19, done.
      remote: Counting objects: 100% (19/19), done.
      remote: Compressing objects: 100% (9/9), done.
      remote: Total 19 (delta 0), reused 0 (delta 0), pack-reused 0
      Receiving objects: 100% (19/19), done.
  2. push 测试

    • commit

      $ git commit -am "test"
      
      Author identity unknown
      
      *** Please tell me who you are.
      
      Run
      
      git config --global user.email "you@example.com"
      git config --global user.name "Your Name" to set your account's default identity.
      Omit --global to set the identity only in this repository. fatal: unable to auto-detect email address (got 'noname@G3.(none)')
      • 原因是没有配置 user.nameuser.email

        • 方案一: 设置全局变量的 user.nameuser.email
        git config --global user.email "you@example.com"
        git config --global user.name "Your Name"
        • 方案二: 设置项目库局部 user.nameuser.email

          1. 进入项目本地仓库
          2. 设置 user.nameuser.email
        git config --local user.email "you@example.com"
        git config --local user.name "Your Name"
    • commit 2

      $ git commit -am "5555" 
      
      [test 52bcd83] 5555
      1 file changed, 1 insertion(+)
    • push

      $ git push 
      
      Enumerating objects: 5, done.
      Counting objects: 100% (5/5), done.
      Writing objects: 100% (3/3), 242 bytes | 242.00 KiB/s, done.
      Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
      remote: Powered by GITEE.COM [GNK-6.1]
      To gitee.com:librarookie/test.git
      a14d3de..52bcd83 test -> test

拓展

Reference

配置GitHub和 Gitee共存环境的更多相关文章

  1. nginx 反向代理apache服务器 配置java与PHP共存环境

    listen 80; listen 443; ssl on; ssl_certificate /passport.crt; ssl_certificate_key /passport.key; ssl ...

  2. Window环境下使用多个Git账号(github,gitee,gitlab,gogs等)

    个人电脑之前已经设置好github账号了,公司用的是gitlab私服,一直互不干扰,因为用的是不同的电脑,也就懒得配置git多账户环境.最近看了一下多年空空如也的码云,想着怎么的也会用到gitee来托 ...

  3. Git进阶之路:配置git同时推送github和gitee仓库

    1. 进入工程根目录打开.git文件夹(需要显示隐藏文件夹) 2. 打开.git文件夹下的config文件进行编辑添加github和gitee仓库地址 3. 推送验证 github提交记录 gitee ...

  4. Git:将本地项目连接到远程(github、gitee、gitlab)仓库流程

    当进行协同开发或者为了代码安全备份需要,一般都会将本地代码和远程仓库相连接. 备注:Github.Gitee.Gitlab是三个常用的远程git仓库,操作流程基本一致. 提前环境要求: 1.node. ...

  5. 如何在一台开发机中同时配置github、gitlab等多个账户

    本文参考博文. 如果公司的代码同步环境在gitlab上,而自己有很多项目托管在github.我们需要做一些额外的配置实现两者的无缝切换. 步骤 我的开发机是macbook,如果属于不同系统,找到该系统 ...

  6. 转[开发环境配置]在Ubuntu下配置舒服的Python开发环境

    在Ubuntu下配置舒服的Python开发环境 Ubuntu 提供了一个良好的 Python 开发环境,但如果想使我们的开发效率最大化,还需要进行很多定制化的安装和配置.下面的是我们团队开发人员推荐的 ...

  7. Vim配置及说明——IDE编程环境

    Vim配置及说明——IDE编程环境 Vim配置及说明——IDE编程环境 1.基本及字体 2.插件管理 3.主题风格 4.窗口设置 5.目录树导航 6.标签导航 7.taglist 8.多文档编辑 9. ...

  8. Git客户端图文详解如何安装配置GitHub操作流程攻略

    收藏自 http://www.ihref.com/read-16377.html Git介绍 分布式 : Git版本控制系统是一个分布式的系统, 是用来保存工程源代码历史状态的命令行工具; 保存点 : ...

  9. Windows7配置GPU和Theano编程环境

    可参考Windows安装Theano官方教程: http://deeplearning.net/software/theano/install_windows.html#install-windows ...

随机推荐

  1. AgileConfig 轻量级配置中心 1.5 发布 - 支持多环境配置

    AgileConfig 从发布到现在,收到不同学的 issue 说需要多环境的支持.也就是一个应用在不同的环境下可以配置不同的配置项.这是一个非常有用的功能,就跟我们开发的时候会设置多个 appset ...

  2. Java多线程中的死锁

    Java多线程中的死锁 死锁产生的原因 线程死锁是指由两个以上的线程互相持有对方所需要的资源,导致线程处于等待状态,无法往前执行. 当线程进入对象的synchronized代码块时,便占有了资源,直到 ...

  3. 第2次 Beta Scrum Meeting

    本次会议为Beta阶段第2次Scrum Meeting会议 会议概要 会议时间:2021年5月31日 会议地点:「腾讯会议」线上进行 会议时长:0.5小时 会议内容简介:对完成工作进行阶段性汇报:对下 ...

  4. 升级MySQL8.0的历险记

    最近忙于Fighting的项目,所以笔耕有些松懈,实为不该. 刚好遇到需要从MySQL5.7.33升级到MySQL8.0.x的需求,于是记录一下整个升级过程,踩坑而过. 背景梗概:本地docker容器 ...

  5. qgis3.16.6+vs2017再编译(debug+release)

    参考 https://www.cnblogs.com/superbi/p/11188145.html 文章以及其它文章,对qggis3.16.6进行了重新编译 一.编译准备 1.Cygwin 1.1安 ...

  6. python +spatialite + window 解决方案(https://www.jianshu.com/p/5bc7d8b7b429)

    运行环境在windows 10 64bit.先将python安装完成.然后,到 spatilite官网 找到MS(即Microsoft)版本,下载64位的mod_spatialite,将其先解压到目标 ...

  7. WiFi天线对PCB布局布线和结构的要求详解 - 全文

    随着市场竞争的加剧,硬件设备正以集成化的方向发展.天线也由外置进化内置再进化到嵌入式,我们先来介绍这类应用的天线种类: ⑴ On Board板载式:采用PCB蚀刻一体成型,性能受限,极低成本,应用于蓝 ...

  8. Vulnstack内网靶场3

    Vulnstack内网靶场3 (qiyuanxuetang.net) 环境配置 打开虚拟机镜像为挂起状态,第一时间进行快照,部分服务未做自启,重启后无法自动运行. 挂起状态,账号已默认登陆,cento ...

  9. (类)Program1.1

    1 class MyClass: 2 3 i = 12345 4 5 def __init__(self): 6 self.data = "WOOWOWOWO" 7 8 def f ...

  10. 链表中倒数第K个结点 牛客网 剑指Offer

    链表中倒数第K个结点 牛客网 剑指Offer 题目描述 输入一个链表,输出该链表中倒数第k个结点. # class ListNode: # def __init__(self, x): # self. ...