最新公告
  • 欢迎您光临极客文库,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 前言介绍:

    很多时候,我们都需要去在电脑上去同时使用gitlab和github,但是这样会很容易造成冲突,看了很多文章去解决这个问题,但是我发现大家的方式各有不同,导致看博客的人感觉很困惑,于是我尝试一步一步引导大家用三种方式去真正的实现在一台PC上去同时使用gitlab和github
    pic1

    基本要点

    • 于我而言,提交公司的代码比较多,所以我配置global为公司(gitlab)使用时候提交的具体信息,配置local为个人(github)使用的具体信息
    • global:全局配置(用户名和邮箱)
    • local:当前项目的配置(用户名和邮箱),如果你没有配置,提交代码时候个人信息是global配置的信息。需要注意的是配置local的时候,需要cd指令打开具体项目文件夹,再去配置local
    需要说明的是这两个配置并没有什么大的用处,仅仅只是为了在提交代码的时候,标明到底是哪位同学上传的代码罢了
    • 类似于如下图:
      pic2
    //查看全局配置(global)
    git config —global —list
    //设置global的基本信息,用户名和邮箱
    git config —global user.name AllenJ
    git config —global user.name jiang@gamil.com
    //查看当前项目的配置(local
    git config –local –list
    //设置local的基本信息,用户名和邮箱
    git config –global user.name jzt
    git config –global user.name jzt@qq.com

    三种方式

    • 由于我设置提交到gitlab是全局global,这个很简单;所以我只演示如何提交到github。

    方式一:

    • 通过Https的方式,不需要生成SSH密钥
    pic3
    • git指令如下图:
    pic4
    //配置global
    git config —global user.name AllenJ
    git config —global user.name jiang@gamil.com
    //打开具体需要克隆的文件,克隆项目到该文件夹内
    cd C/MyBlog
    git clone https://github.com/jzt-Tesla/FileRecyclerViewDemo.git
    //配置该项目的local
    git config —global user.name jzt
    git config —global user.name jzt@qq.com
    //自己手动测试一下,随便改一下里面的文件内容
    //git命令,提交项目到github
    cd C/MyBlog/FileRecyclerViewDemo (克隆的具体项目)
    git status
    git add 具体改变的文件
    git commit -m‘注释’
    git push
    注意:提交的时候,会弹出一个验证,输入github账号和密码就OK了 ~
    pic5

    方式二&方式三:

    • 方式二:通过SSH进行验证,但是不配置config文件
    • 方式三:通过SSH进行验证,需要配置config文件
    pic6

    相同步骤:

    1. 首先分别生成gitlab和github网站的密钥文件,一共两对四个,公钥和私钥。
    //gitlab密钥
    $ ssh-keygen -t rsa -C “jiang@gmail”
    //github密钥
    $ ssh-keygen -t rsa -C “jzt@qq.com” -f ~/.ssh/github_id-rsa
    • -t 密钥类型,默认是 rsa加密
    • -C 注释文字,比如用户邮箱
    • -f 密钥文件位置及文件名
    1. 将生成的公钥(.pub文件)粘贴到github/gitlab的SSH地址里面
    pic7
    1. 这时候你需要测试一下是否能够连的通gitlab/github
    ssh -T git@你的地址
    //例如如下
    ssh -T git@192.168.3.110
    ssh -T git@github.com
    -当测试的时候会发生图下所示,测试生成id_rsa密钥的地址是正常的,而生成github_id_rsa的会 permission denied(publickey)
    意味着无法连通github
    pic8

    不同步骤:

    方式二:

    • 造成上述情况的原因是,默认是使用id_rsa密钥的,如果要使用新密钥,需要将新密钥添加到agent里面去,而且遗憾的是这是临时的,下次使用同样需要再次添加。
      ssh-agent bash
      ssh-add ~/.ssh/github_id_rsa
    • 这个时候就可以测试github了,发现是完全OK的。
      pic9
    • 剩下的步骤和Https方式一致,无非是设置global、local、克隆,推送,提交项目

    方式三:

    • 方式二已经说明了原因了,就是密钥不一致,那么我们在这里采用的方法是搞一个配置文件config, 其中gitlab地址,一般都是自己公司目所在的ip地址。网上很多人用gitlab.com,如果你保存项目在gitlab,那你就填写这个吧。
    //生成config 
    ssh touch ~/.ssh/config
    • 直接打开config文件,进行如下配置:
    Host gitlab
    HostName 192.168.3.110
    IdentityFile ~/.ssh/id_rsa
    Host github
    HostName github.com
    IdentityFile ~/.ssh/github_id_rsa
    • 注意的是,大家配置完成后进行测试,就不是像方法二 git -T git@具体地址,而是git -T git@Host的值 ,也就是config里面具体的Host,因为有配置文件config,最后会指向具体的密钥,这样就OK了
    • 你可能会出现下图的config配置问题,我当时被这个搞了好久,参考很多人说的,这个是空格问题 ——>管理git生成的多个ssh key ,但是我怎么搞都不行,最后用markdown的工具打开,删除空格和每行之间必须用回车不然也会出错(开始用了txt文件打开,无论怎么都搞不好),每行之间是回车,但是你用txt打开却是空格,所以大家要小心了,实在不行的,也可以参考我后面的github地址,大家自行下载。
      pic10
    • 最后的成功的结果图:
      pic11
    • 剩下的步骤和Https方式一致,无非是设置global、local、克隆,推送,提交项目
    值得注意的一点是:
    • 当我们克隆项目到本地的时候,也许会出现第一个里面的错误:
      pic12
    • 说我们没有权限去克隆,但是明明都已经与github服务器测试成功了,为什么还是会出现没有权限的错误呢?可以观察到:
    • 第一个clone的地址是:git clone git@github.com:jzt-Tesla/FileRecyclerViewDemo.git
    • 第二个clone的地址是:git clone git@github:jzt-Tesla/FileRecyclerViewDemo.git
    • 第一个地址是直接从github里面复制过来的,错误在于我们设置了config文件里面的github的Host为github,而不是github.com,从而导致了第一种克隆方式无法找到github密钥的地址,所以也就没有权限了。修改成Host里面的github,使用第二张克隆就可以成功的将项目clone到本地了。

    Others

    • 修改已经设置过的global配置
    $  git config —global –replace-all user.email “输入你的邮箱” 
    $  git config —global –replace-all user.name “输入你的用户名”
    • 提交所有修改
    // 提交未跟踪、修改和删除的文件。
        git add –all
    //提交未跟踪和修改的文件,但不能进行文件的删除。
        git add .
    • 获取当前的clone方式(Http或者Git)
    git remote -v
    • SHH验证,成功的话,密钥的颜色会有如下的变化:
      pic13

    错误总结:

    • 如果出现错误 Permission denied (publickey) ,那么证明你进行SSH验证的时候,密钥是出现了错误的。

    总结来说

    • 建议大家使用第三种方式,简单一丢丢 ~

    config文件:

    • Github下载地址:!——》 config文件下载地址
      https://github.com/jzt-Tesla/FileRecyclerViewDemo
    本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
    极客文库 » 一目了然:git命令三种方式实现Gitlab和Github同时登录

    常见问题FAQ

    如果资源链接失效了怎么办?
    本站用户分享的所有资源都有自动备份机制,如果资源链接失效,请联系本站客服QQ:2580505920更新资源地址。
    如果用户分享的资源与描述不符怎么办?
    可以联系客服QQ:2580505920,如果要求合理可以安排退款或者退赞助积分。
    如何分享个人资源获取赞助积分或其他奖励?
    本站用户可以分享自己的资源,但是必须保证资源没有侵权行为。点击个人中心,根据操作填写并上传即可。资源所获收益完全归属上传者,每周可申请提现一次。
    如果您发现了本资源有侵权行为怎么办?
    及时联系客服QQ:2580505920,核实予以删除。

    Leave a Reply

    Hi, 如果你对这款资源有疑问,可以跟我联系哦!

    联系发布者

    Leave a Reply

    Hi, 如果你对这款资源有疑问,可以跟我联系哦!

    联系发布者
    • 102会员总数(位)
    • 3674资源总数(个)
    • 2本周发布(个)
    • 0 今日发布(个)
    • 135稳定运行(天)

    欢迎加入「极客文库」,成为原创作者从这里开始!

    立即加入 了解更多
    成为赞助用户享有更多特权立即升级