目录

  • 使用Gitee
  • 使用GitHub

使用Gitee


使用GitHub时,国内的用户经常遇到的问题是访问速度太慢,有时候还会出现无法连接的情况(原因你懂的)。

如果我们希望体验Git飞一般的速度,可以使用国内的Git托管服务——Gitee(gitee.com)。

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

Gitee的免费版本也提供私有库功能,只是有5人的成员上限。

使用Gitee和使用GitHub类似,如果不会,可以观看我的前一篇GitHub的注册与使用(小白教程)

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

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

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

首先,我们在Gitee上创建一个新的项目,选择右上角用户头像 -> 菜单“+”,然后点击“新建仓库”:

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

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

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

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

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

$ git remote add origin git@gitee.com:ITmxs/Git.git
fatal: remote origin already exists.

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

$ git remote -v
origin  https://github.com/ITmxs/mygit.git (fetch)
origin  https://github.com/ITmxs/mygit.git (push)

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

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

git remote rm origin

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

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

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

$ git remote -v
origin  git@gitee.com:ITmxs/Git.git (fetch)
origin  git@gitee.com:ITmxs/Git.git (push)

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

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

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

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

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

git remote rm origin

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

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

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

接着,再关联Gitee的远程库:

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

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

git push gitee master

可以看到gitee仓库里有了我今天的操作

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

┌─────────┐ ┌─────────┐
│ GitHub  │ │  Gitee  │
└─────────┘ └─────────┘▲           ▲└─────┬─────┘│┌─────────────┐│ Local Repo  │└─────────────┘

使用GitHub

可以观看我的前一篇GitHub的注册与使用(小白教程)

我们一直用GitHub作为免费的远程仓库,如果是个人的开源项目,放到GitHub上是完全没有问题的。其实GitHub还是一个开源协作社区,通过GitHub,既可以让别人参与你的开源项目,也可以参与别人的开源项目。

在GitHub出现以前,开源项目开源容易,但让广大人民群众参与进来比较困难,因为要参与,就要提交代码,而给每个想提交代码的群众都开一个账号那是不现实的,因此,群众也仅限于报个bug,即使能改掉bug,也只能把diff文件用邮件发过去,很不方便。

但是在GitHub上,利用Git极其强大的克隆和分支功能,广大人民群众真正可以第一次自由参与各种开源项目了。

如何参与一个开源项目呢?比如人气极高的bootstrap项目,这是一个非常强大的CSS框架,你可以访问它的项目主页https://github.com/twbs/bootstrap,点“Fork”就在自己的账号下克隆了一个bootstrap仓库,然后,从自己的账号下clone:

git clone git@github.com:michaelliao/bootstrap.git

一定要从自己的账号下clone仓库,这样你才能推送修改。如果从bootstrap的作者的仓库地址git@github.com:twbs/bootstrap.git克隆,因为没有权限,你将不能推送修改。

Bootstrap的官方仓库twbs/bootstrap、你在GitHub上克隆的仓库my/bootstrap,以及你自己克隆到本地电脑的仓库,他们的关系就像下图显示的那样:

┌─ GitHub ────────────────────────────────────┐
│                                             │
│ ┌─────────────────┐     ┌─────────────────┐ │
│ │ twbs/bootstrap  │────>│  my/bootstrap   │ │
│ └─────────────────┘     └─────────────────┘ │
│                                  ▲          │
└──────────────────────────────────┼──────────┘▼┌─────────────────┐│ local/bootstrap │└─────────────────┘

如果你想修复bootstrap的一个bug,或者新增一个功能,立刻就可以开始干活,干完后,往自己的仓库推送。

如果你希望bootstrap的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。当然,对方是否接受你的pull request就不一定了。

        └─────────────────┘

如果你想修复bootstrap的一个bug,或者新增一个功能,立刻就可以开始干活,干完后,往自己的仓库推送。如果你希望bootstrap的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。当然,对方是否接受你的pull request就不一定了。

使用 Gitee 进行代码管理(包括本地仓库如何同时关联Git和Gitee)相关推荐

  1. 使用 Gitee 进行代码管理

    为什么使用 Gitee 这里推荐使用 Gitee 进行代码管理 Gitee 和 Github 最大的区别在我看来就是私有库的免费,在 Github 上建立私有库是需要收费的,而在 Gitee 上建立私 ...

  2. git如何将远程仓库代码拉下覆盖本地仓库

    git将远程仓库代码拉下覆盖本地仓库 记录,在最近代码学习过程中,自己手动改了一下代码,但是忘记修改了哪些,现在想恢复到和远程仓库代码一致. 使用如下三条命令搞定: 1.git fetch --all ...

  3. Git系列(四)、在IDEA操作Git本地仓库与连接远程Git仓库(推送、合并、拉取、克隆操作)

    在IDEA操作Git本地仓库与连接远程Git仓库 1.首先设置idea中绑定本地Git的可执行路径 2.随便建个项目,将项目初始化为Git管理的本地仓库 3.按命令操作顺序将项目添加并提交到本地仓库中 ...

  4. 怎么把git代码导入到本地仓库_git在本地仓库添加了一个tag,如何把这个tag同步到远程仓库?...

    推送所有tag :git push --tags 附git常用命令 查看文件状态 :git status 切换分支 :git checkout [分支名] 新增文件 :git add [文件名] 新增 ...

  5. 代码管理工具知多少?来看看Git怎么用吧

    一. 代码管理工具简介 说到代码工具,许多工作了的小伙伴一定很有发言权.因为我们在实际开发环境中,就代码的复杂度和逻辑度,对于开发工程师来说,都是极具挑战性的.如果单靠个人来完成单个项目的整体开发,那 ...

  6. git 创建本地仓库与 gitcafe 关联

    git init # 创建本地仓库 # 设置远程仓库地址,这里可以设置ssh 或 https 的形式,此处设置为https 格式, # ssh 格式为 : git remote add origin ...

  7. SourceTree+git结合gitee实现代码管理

      为方便代码托管和协同开发,往往使用到Git,SVN等工具.在Windows和macOS上可使用git配合SourceTree来对Github或Gitee的远端代码进行管理. 1.安装工具 先安装g ...

  8. git(码云):如何把本地代码提交到码云代码管理项目上

    第一步:clone项目 D:\>mkdir inek_winprop D:\>cd inek_winprop D:\inek_winprop>dir驱动器 D 中的卷没有标签.卷的序 ...

  9. [编程开发工具-6]:github仓库、gitee仓库、git本地仓库混合管理的架构与详细实现步骤

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

最新文章

  1. sendData to ABAP backend via multiple form content type
  2. Html5 冒泡排序演示
  3. 云数据库RDS基础版的优势及适用场景
  4. QT Creator5.14软件的安装与使用(Win7与Ubuntu20.04)
  5. 如何批量重命名,文件批量重命名方法介绍
  6. 设计模式:个人理解关于代理和委托模式的一点区别
  7. 转置矩阵(Transpose of a matrix)
  8. 华三路由器双向NAT
  9. CenterNet: Keypoint Triplets for Object Detection论文详解
  10. 安装火绒的情况下怎么关闭防火墙
  11. 打字速度单位WPM、KPM定义与计算方法
  12. 【Spring Cloud Alibaba 温故而知新】(五)SpringCloud Sleuth + Zipkin:分布式日志追踪
  13. php扩展cURL执行中途无响应
  14. Linux常用命令——systemctl命令
  15. 计算机组装物料清单,什么叫物料清单
  16. Redis配置文件redis.conf内容完整版
  17. 牛B的人到处都是(打击的一沓糊涂)
  18. 项目经理是怎样炼成的?
  19. 关于9530/9630 R-UIM模式电信行货与水货比对测试的思考
  20. php控制步进电机,pwm控制步进电机怎么加速

热门文章

  1. 何晓群pdf 应用回归分析第五版_暨南社会学论坛|未成年人司法中的法律实证与统计应用:多元回归分析(第三期)...
  2. python拼图_Python实现, 命令行下的拼图游戏
  3. 猜数字游戏python程序_python实现的简单猜数字游戏
  4. linux版_巧用linux版powershell,管理linux下的docker
  5. wincc无法修改服务器名称_WinCC(TIA)组件SIVARC在BA空调及冷热源系统改造项目中的应用...
  6. php验证旧密码,PHP验证数据库密码问题
  7. 怎么利用迭代器写入mysql_流迭代器实现文件操作(读取和写入)方法详解
  8. Linux打印指定的行范围
  9. centos7.6成功安装nerdtree插件
  10. 卸载linux 上Java的正确方式