GitHub和Gitee的区别以及具体使用

文章目录

  • GitHub和Gitee
    • GitHub和Gitee区别
    • GitHub的使用
    • Gitee的使用

GitHub和Gitee

GitHub和Gitee区别

  • 速度不同:GitHub位于美国,而Gitee位于中国。这意味着在中国使用Gitee可能会有更快的访问速度和更好的稳定性。如果我们希望体验Git飞一般的速度,可以使用国内的Git托管服务——Gitee(gitee.com)。
  • 社区范围不同:GitHub是全球最大的开源社区之一,拥有大量的开源项目和开发者。Gitee则更加侧重于中国的开源社区,有很多中国开发者和项目。
  • 私有仓库:GitHub在免费账户中只允许创建公开仓库,如果需要创建私有仓库,则需要付费。而Gitee在免费账户中允许创建一定数量的私有仓库,更适合个人开发者和小型团队。对于团队协作开发,Gitee还提供了项目管理、代码托管、文档管理的服务,5人以下小团队免费。

GitHub的使用

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

在GitHub上,利用Git极其强大的克隆和分支功能,真正可以自由参与各种开源项目了。

下面我们来参与一个开源项目:
比如人气极高的bootstrap项目,这是一个非常强大的CSS框架,你可以访问它的项目主页https://github.com/twbs/bootstrap,点“Fork”就在自己的账号下克隆了一个bootstrap仓库
在这里插入图片描述

然后,从自己的账号下clone:
git clone git@github.com:songwaimaideyasuo/bootstrap.git

一定要从自己的账号下clone仓库,这样你才能推送修改。如果从bootstrap的作者的仓库地址git@github.com:twbs/bootstrap.git克隆,因为没有权限,你将不能推送修改。
现在他们的关系就像下图显示的那样:
在这里插入图片描述

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

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

Gitee的使用

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

点击“确定”即可完成并看到刚才添加的Key:
在这里插入图片描述

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

首先,我们在Gitee上创建一个新的项目,选择右上角用户头像旁边的+,然后点击“创建仓库:
在这里插入图片描述
点击创建。

然后,我们在本地库上使用命令git remote add把它和Gitee的远程库关联:
git remote add origin git@gitee.com:yasso-delivering-takeout/learngit.git

之后,就可以正常地用git push和git pull推送了!
如果在使用命令git remote add时报错:
在这里插入图片描述
这说明本地库已经关联了一个名叫origin的远程库,此时,可以先用git remote -v查看远程库信息:
git remote -v
在这里插入图片描述

我们可以删除已有的GitHub远程库:
git remote rm origin
再关联Gitee的远程库(注意路径中需要填写正确的用户名):
git remote add origin git@gitee.com:yasso-delivering-takeout/learngit.git
此时,我们再查看远程库信息:
git remote -v
在这里插入图片描述
现在可以看到,origin已经被关联到Gitee的远程库了。通过git push命令就可以把本地库推送到Gitee上。

有的小伙伴又要问了,一个本地库能不能既关联GitHub,又关联Gitee呢?
答案是肯定的,因为git本身是分布式版本控制系统,可以同步到另外一个远程库,当然也可以同步到另外两个远程库。

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

仍然以learngit本地库为例,我们先删除已关联的名为origin的远程库:
git remote rm origin
然后,先关联GitHub的远程库:
git remote add github git@github.com:songwaimaideyasuo/learngit.git
在这里插入图片描述
注意:远程库的名称叫github,不叫origin了。

接着,再关联Gitee的远程库:
git remote add gitee git@gitee.com:yasso-delivering-takeout/learngit.git
同样注意,远程库的名称叫gitee,不叫origin。
现在,我们用git remote -v查看远程库信息,可以看到两个远程库:
git remote -v
在这里插入图片描述

如果要推送到GitHub,使用命令:
git push github master
如果要推送到Gitee,使用命令:
git push gitee master
这样一来,我们的本地库就可以同时与多个远程库互相同步。

Gitee也同样提供了Pull request功能,可以让其他小伙伴参与到开源项目中来。

小结:
在GitHub和Gitee上,都可以任意Fork开源仓库;
自己拥有Fork后的仓库的读写权限;
可以推送pull request给官方仓库来贡献代码。

GitHub和Gitee都是优秀的代码托管平台,选择使用哪一个取决于个人或团队的需求和偏好。如果你在中国,并且更关注中国开发者社区,那么Gitee可能是一个更好的选择。如果你更关注全球开发者社区和更广泛的开源项目,那么GitHub可能更适合你。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql如何确定执行计划是最优开销?Mysql优化器!

1. 什么是 MySQL 优化器? MySQL 优化器是 MySQL 中的一个核心组件。MySQL 优化器的主要职责在于确定查询的执行计划。在数据库中,同样的查询可以有多种不同的执行方式,如使用不同的索引,使用不同的连接顺序等。每种执行方式都有其…

抛硬币有连续x次正面的期望

首先来看期望的基本公式 其中x是抛x次,p是在抛第x次后出现连续正面的概率 先来看出现1次正面的期望 按照公式来算是 抛1次 1/2的概率 抛2次 1/4的概率 抛3次 1/8的概率... 我们可以写一个程序试一下 signed main() {ios_base::sync_with_stdio(0); cin.tie(0…

Python学习基础笔记七十九——Socket编程2

应用消息格式: 为什么要定义消息格式? 我们发送的消息就是要传递的内容,比如字符串。 我们在企业中开发的程序通讯,消息往往是有格式定义的。消息格式的定义可以归入OSI网络模型的表示层。 比如:定义的消息包括消息…

自然语言处理---Self Attention自注意力机制

Self-attention介绍 Self-attention是一种特殊的attention,是应用在transformer中最重要的结构之一。attention机制,它能够帮助找到子序列和全局的attention的关系,也就是找到权重值wi。Self-attention相对于attention的变化,其实…

网络工程师最强入职指南

大家好,我是老杨。 秋招即将进入尾声,各位都找到心仪的工作了吗? 今年的春秋招的热度好像不是很高,而且很多网工都是在“全年找工作”的状态里持续着,字里行间无不透露出对行业和自身的焦虑。 毕竟“今年是未来10年…

一种基于HTTPS实现的Web账号登录Linux桌面系统的实现方案

问题由来 客户需求计划列入支持第三方帐号系统,包括Web账号。需求来源是用户想要用它们的帐号直接登录Linux Deepin操作系统。一个失败的实现方案是用户以较小的成本改造帐号管理系统发布HTTP服务,我们开发一个PAM模块与Web服务器交互,数据格…

uni-app--》基于小程序开发的电商平台项目实战(七)完结篇

🏍️作者简介:大家好,我是亦世凡华、渴望知识储备自己的一名在校大学生 🛵个人主页:亦世凡华、 🛺系列专栏:uni-app 🚲座右铭:人生亦可燃烧,亦可腐败&#xf…

Python Pandas数据处理作图——波尔共振实验

import matplotlib.pyplot as plt import pandas as pd from pylab import mplmpl.rcParams["font.sans-serif"] ["SimHei"]data {频率比例w/wr: [1.036, 1.030, 1.025, 1.020, 1.012, 1.007, 1.002,0.997,0.993,0.990,0.986,0.977,0.969],振幅测量值θ&…

Python实战小项目分享

Python实战小项目包括网络爬虫、数据分析和可视化、文本处理、图像处理、聊天机器人、任务管理工具、游戏开发和网络服务器等。这些项目提供了实际应用场景和问题解决思路,可以选择感兴趣的项目进行实践,加深对Python编程的理解和掌握。在实践过程中&…

2023-mac brew安装python最新版本,遇见的问题和处理方式

#### 创建Python3.11.6符号链接我现在遇见这个问题了:python --version -bash: python: command not found 192:bin wangyang$ python3 --version Python 3.9.6 192:bin wangyang$ /usr/local/bin/python3 --version Python 3.11.6我要怎么做,我才可以直…

Qt耗时操作添加动画等待加载效果

Qt耗时操作添加动画等待加载效果_qt 等待动画-CSDN博客本例模拟耗时请求实现动画等待加载效果,采用QtConcurrent::run实现异步耗时操作,通过QFutureWatcher异步监测耗时操作结果的返回值做相应的动画演示。_qt 等待动画https://blog.csdn.net/qq_3666686…

高效访问数据的关键:解析MySQL主键自增长的运作机制!

文章目录 🍊 主键自增长的概念🍊 主键自增长的数据类型🍊 主键自增长的步长🍊 主键自增长的性能优化🎉 为什么需要主键自增长的性能优化?🎉 主键自增长的性能优化方案📝 1. 调整主键自增长的步…

istio介绍(一)

1. 概念 1.1 虚拟服务 虚拟服务提供流量路由功能,它基于 Istio 和平台提供的基本的连通性和服务发现能力,让您配置如何在服务网格内将请求路由到服务 示例: apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata:nam…

信钰证券:长江电力180亿市值,招商证券、摩根大通等浮盈超一成

本周A股限售股解禁规划环比有所上升。 Wind数据核算闪现,除去新上市公司,本周共有64家公司限售股解禁,解禁数量51.52亿股,以最新收盘价核算(下同),解禁市值776.21亿元。 本周解禁市值跨越10亿…

RN:报错info Opening flipper://null/React?device=React%20Native

背景 在 ios 上使用 debug 模式的时候,报错:info Opening flipper://null/React?deviceReact%20Native,我找到了这个 issue 其实也可以看到现在打开 debug,是 open debug,也不是之前的 debug for chrome 了&#xf…

每日一题 2316. 统计无向图中无法互相到达点对数(中等,图连通分量)

题目很简单,只要求出每个连通分量有多少个节点即可首先通过建立一个字典来表示每个节点的邻接关系遍历每个节点,并通过邻接关系标记在当前连通分量内的所有的点,这样就可以知道一个连通分量内有多少个点在这里我陷入了一个误区,导…

计算机系统概论

1. 现代计算机由哪两部分组成 计算机系统:硬件、软件

分享一下抽奖活动小程序怎么做

在当今数字化时代,抽奖活动小程序已成为一种高效、创新的营销方式。它不仅能够吸引用户的注意力,提高品牌知名度,还能促进用户参与度,增强用户对品牌的忠诚度。本文将详细介绍如何制作一个成功的抽奖活动小程序,以及它…

Python爬虫如何设置代理服务器(搭建代理服务器教程)

在Python爬虫中使用代理服务器可以提高爬取数据的效率和稳定性。本文将为您提供搭建代理服务器的详细教程,并提供示例代码,帮助您在Python爬虫中设置代理服务器,实现更高效、稳定的数据抓取。 Python爬虫怎么设置代理服务器(搭建代…

python打包和发布package

打包 偶尔有一些复用性很高,复杂度也很高的函数要反复调用,可以自行打包,安装 打包结构如下 以iso_timer为例 mkdir common vim __init__.py cd common vim __init__.py vim format.py# init.py from .common import *# /common/init.p…