zoukankan      html  css  js  c++  java
  • git使用oschina托管代码

    一、git代码托管

      1、github官网,默认一般是放在这,但是该网站不是国内的,网速比较慢并且有时候连不上,私有库是需要收费的。

      2、oschina,这个网站是私有公有库都是免费的,网址是:https://gitee.com。

      3、自己搭一个git服务器,一般只能在局域网中使用,和svn类似。

    二、oschina托管操作(码云)

    和GitHub相比,码云也提供免费的Git仓库,并且,免费版本还包含私有库。此外,还集成了代码质量检测、项目演示等功能。对于团队协作开发,码云还提供了项目管理、代码托管、文档管理的服务,5人以下小团队免费。

      生成秘钥:ssh-keygen

      找到生成秘钥的文件,复制里面的内容。

    使用码云和使用GitHub类似,我们在码云上注册账号并登录后,需要先上传自己的SSH公钥。选择右上角用户头像 -> 菜单“修改资料”,然后选择“SSH公钥”,填写一个便于识别的标题,然后把用户主目录下的.ssh/id_rsa.pub文件的内容粘贴进去:

    gitee-add-ssh-key

    点击“确定”即可完成并看到刚才添加的Key:

    gitee-key

    如果我们已经有了一个本地的git仓库(例如,一个名为learngit的本地库),如何把它关联到码云的远程库上呢?

    首先,我们在码云上创建一个新的项目,选择右上角用户头像 -> 菜单“控制面板”,然后点击“创建项目”:

    gitee-new-repo

    项目名称最好与本地库保持一致:

    远程库的地址:

    然后,我们在本地库上使用命令git remote add把它和码云的远程库关联:

    git remote add origin git@gitee.com:liaoxuefeng/learngit.git
    

    之后,就可以正常地用git pushgit pull推送了!

    如果在使用命令git remote add时报错:

    git remote add origin git@gitee.com:liaoxuefeng/learngit.git
    fatal: remote origin already exists.

    测试是否连接成功: ssh -T git@git.oschina.net

    出现类似于上面的提示表示连接成功。

    这说明本地库已经关联了一个名叫origin的远程库,此时,可以先用git remote -v查看远程库信息:

    git remote -v
    origin    git@github.com:michaelliao/learngit.git (fetch)
    origin    git@github.com:michaelliao/learngit.git (push)
    

    可以看到,本地库已经关联了origin的远程库,并且,该远程库指向GitHub。

    我们可以删除已有的GitHub远程库:

    git remote rm origin
    

    再关联码云的远程库(注意路径中需要填写正确的用户名):

    git remote add origin git@gitee.com:liaoxuefeng/learngit.git
    

    此时,我们再查看远程库信息:

    git remote -v
    origin    git@gitee.com:liaoxuefeng/learngit.git (fetch)
    origin    git@gitee.com:liaoxuefeng/learngit.git (push)
    

    现在可以看到,origin已经被关联到码云的远程库了。通过git push命令就可以把本地库推送到Gitee上。

    可能push会出现以上的问题。

    通过以下命令可以解决,具体参考:https://jingyan.baidu.com/article/f3e34a12a25bc8f5ea65354a.html

    git pull --rebase origin master

    有的小伙伴又要问了,一个本地库能不能既关联GitHub,又关联码云呢?

    答案是肯定的,因为git本身是分布式版本控制系统,可以同步到另外一个远程库,当然也可以同步到另外两个远程库。

    使用多个远程库时,我们要注意,git给远程库起的默认名称是origin,如果有多个远程库,我们需要用不同的名称来标识不同的远程库。

    仍然以learngit本地库为例,我们先删除已关联的名为origin的远程库:

    git remote rm origin
    

    然后,先关联GitHub的远程库:

    git remote add github git@github.com:michaelliao/learngit.git
    

    注意,远程库的名称叫github,不叫origin了。

    接着,再关联码云的远程库:

    git remote add gitee git@gitee.com:liaoxuefeng/learngit.git
    

    同样注意,远程库的名称叫gitee,不叫origin

    现在,我们用git remote -v查看远程库信息,可以看到两个远程库:

    git remote -v
    gitee    git@gitee.com:liaoxuefeng/learngit.git (fetch)
    gitee    git@gitee.com:liaoxuefeng/learngit.git (push)
    github    git@github.com:michaelliao/learngit.git (fetch)
    github    git@github.com:michaelliao/learngit.git (push)
    

    如果要推送到GitHub,使用命令:

    git push github master
    

    如果要推送到码云,使用命令:

    git push gitee master
    

    这样一来,我们的本地库就可以同时与多个远程库互相同步:

    multi-remote

    码云也同样提供了Pull request功能,可以让其他小伙伴参与到开源项目中来。你可以通过Fork我的仓库:https://gitee.com/liaoxuefeng/learngit,创建一个your-gitee-id.txt的文本文件, 写点自己学习Git的心得,然后推送一个pull request给我,这个仓库会在码云和GitHub做双向同步。

    问题:

  • 相关阅读:
    PointToPointNetDevice doesn't support TapBridgeHelper
    NS3系列—10———NS3 NodeContainer
    NS3系列—9———NS3 IP首部校验和
    NS3系列—8———NS3编译运行
    【习题 7-6 UVA
    【Good Bye 2017 C】 New Year and Curling
    【Good Bye 2017 B】 New Year and Buggy Bot
    【Good Bye 2017 A】New Year and Counting Cards
    【Educational Codeforces Round 35 D】Inversion Counting
    【Educational Codeforces Round 35 C】Two Cakes
  • 原文地址:https://www.cnblogs.com/fengmao/p/7651288.html
Copyright © 2011-2022 走看看