三、代码管理-Git

文章目录

  • 前言
  • 一、Git
    • 1. Git 与 SVN 区别
    • 2. Git 入门
    • 3. 客户端工具
    • 4. 主流Git仓库
  • 二、GitLab
    • 1. 介绍
    • 2. 适合的场景
  • 二、GitHub
    • 1. 介绍
    • 2. 适合的场景
  • 三、Gitee
    • 1. 介绍
    • 2. 适合的场景
  • 四、GitCode
    • 1. 介绍
    • 2. 适合的场景
  • 五、总结


前言

代码托管

  Git作为目前最为流行的版本控制系统,也逐渐成为了开发者们的标配。但是,如何选择一个合适的Git仓库来存储您的代码呢?


一、Git

  Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

  Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

  Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

1. Git 与 SVN 区别

Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。

Git 与 SVN 区别点:

1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。

2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

Git和SVN区别

2. Git 入门

Git 快速入门版本,可以查看 Git 简明指南。

3. 客户端工具

Git 有很多图形界面工具 ( GUI ),比如 SourceTree、Github Desktop、TortoiseGit 等。

SourceTree 是一个 Git 客户端管理工具,适用于 Windows 和 Mac 系统。

SourceTree 简化了开发者与代码仓库之间的 Git 操作方式,我们可以通过界面菜单很方便的处理 Git 操作,而不需要通过命令。

通过 SourceTree,我们可以管理所有的 Git 库,无论是远程还是本地的。SourceTree 支持 Bitbucket、GitHub 以及 Gitlab 等远程仓库。

SourceTree
Sourcetree 使用教程。

4. 主流Git仓库

GitLab、GitHub、Gitee 和 GitCode 是当今市场上主流的代码托管和服务平台,它们都基于 Git 分布式版本控制系统,其实就是基于B/S模式的网站/Web服务,但各自具有独特的特性和定位。

以下将对它们进行对比和评估。

二、GitLab

Gitalb

官方地址

1. 介绍

  GitLab 是一个自托管的 Git 项目管理平台,支持团队协作和 DevOps 流程。它提供了一系列功能来管理和部署项目,包括代码托管、问题跟踪、CI/CD 管道以及代码审查等。

  GitLab 还提供了免费的计划,允许创建公共和私有仓库,并可以在云端和本地部署。

  极狐GitLab 是 GitLab 中国发行版(JH),更加适配国内生产环境,提供更完备的原厂服务。

  • 定位:GitLab 是一个一体化的 DevOps 平台,提供从源代码管理、持续集成/持续部署(CI/CD)、项目管理、安全扫描到监控等全面服务。
  • 版本:GitLab 提供社区版(GitLab CE)和企业版(GitLab EE),后者包含更多高级功能,并针对企业级用户提供付费支持和服务。
  • 部署:既可以自行部署在企业内部服务器上作为私有仓库使用,也提供云端托管服务。
  • 特色:GitLab 自带 CI/CD 工具 GitLab CI/CD,丰富的权限管理,以及可高度定制的自动化流程。

2. 适合的场景

  • DevOps 流程:GitLab 的 CI/CD 功能使得构建、测试和部署流程更加简单高效。
  • 企业级解决方案:对于大型组织和企业来说,GitLab 提供了开源的自托管方案,可以基本满足全面的需求,也提供了付费的更多高级功能和服务支持。

二、GitHub

GitHub
官方地址

1. 介绍

  GitHub 是目前最大的 Git 托管服务提供商之一,它提供了功能强大的代码托管服务,并且支持公共和私有仓库。允许用户与其他开发者合作,在项目上共享代码,并进行代码审查。它也提供了一些基本的项目管理功能,但相对于 GitLab 来说功能较少,更适合个人开发者或小型团队使用。

  GitHub 有一个不断增长的活跃社区,也是目前全球最大的开发者社交平台。在这里,可以找到很多优秀的开源项目,也可以与其他开发者进行社交互动和协作。

  • 定位:GitHub 主要是面向全球开发者社区的代码托管平台,也是开源项目的首选之地,拥有庞大的开源生态系统。
  • 服务:提供免费的公共仓库和个人使用的私有仓库(有限数量),商业用户可以购买额外的私有仓库和企业级功能。
  • 特色:GitHub Actions 是其内置的 CI/CD 工具,GitHub Issues 和 Pull Requests 功能非常完善,便于协作和项目管理。
  • 收购:Microsoft 在2018年收购了GitHub,因此它还整合了微软的一些服务和工具。

2. 适合的场景

  • 开源项目:GitHub 聚集了许多优秀的开源项目,对于想要分享和交流的程序员来说是一个理想的选择。
  • 社交开发:GitHub 的社交特性可以帮助用户更好地与其他开发者进行交流,对跨国协作非常友好。

三、Gitee

Gitee
官方地址

1. 介绍

  Gitee 是一个国产的 Git 代码托管平台,与 GitHub 类似,它提供了基于云的代码托管、问题跟踪、CI/CD 等一系列功能,并且支持公共和私有仓库,免费和付费两种使用方式。

  不同之处在于,Gitee 在国内部署了服务器,因此访问速度相对较快。另外,Gitee 还提供了一些特色功能,如集成了 Gitee Pages(类似于 GitHub Pages)和 Gitee GVP(类似于 GitHub 经纪人)等。

  • 定位:Gitee 是中国的代码托管服务平台,主要面向中国开发者市场,特别强调对中文用户的友好体验和服务。
  • 优势:考虑到网络访问速度和数据主权问题,对于希望在国内快速访问和存储代码资源的开发者而言,Gitee 是很好的选择。
  • 特色:同样提供公共和私有的仓库选项,兼容GitHub API,支持企业内部的私有部署,并与中国本地的开发环境及服务紧密集成。

2. 适合的场景

  • 中国用户:为了更好地照顾中国用户,Gitee 提供了更多的本土化服务。
  • 开源项目:Gitee 的开源仓库提供了免费的公共仓库,适合各种大小的开源项目。

四、GitCode

GitCode
官方地址

1. 介绍

  GitCode 是一个由 华为云 和 CSDN 联合开发打造的国产专业代码托管服务平台。它提供了可靠的代码管理和版本控制工具,支持公共和私有仓库,并提供了全面的协作和管理工具。

作为一个新兴的代码托管平台,与其他三个平台相比较为小众。GitCode 主打简洁和高速的特点,提供了基本的代码托管功能和一些简单的项目管理工具。GitCode 目前还在不断发展中,功能相对较少,但在一些特定的应用场景下可能更适合一些开发者的需求。

2. 适合的场景

  • 大文件托管:相比其他 Git 托管服务,GitCode 提供了更大的文件托管能力。
  • 持续集成服务:GitCode 内置了持续集成和部署服务,使得项目的构建和部署流程更加顺畅。

五、总结

  选择合适的平台,需要取决于用户的具体需求,包括但不限于地理位置、网络环境、合规要求、隐私保护、社区活跃度、服务稳定性和附加功能等。

  • GitHub:在社交和协作功能上更出色,适用于国际化的开源项目和大型企业的跨国协作。

  • GitLab:在功能和灵活性上更强大,适用于寻求一站式DevOps解决方案的大型组织和企业

  • Gitee: 在中国市场拥有天然优势,是面向国内用户的平台,访问速度相对较快,并提供了一些特色功能。

  • GitCode: 一个新兴的较为小众的平台,注重简洁和高速,目前是大文件托管的理想选择。


本文的引用仅限自我学习如有侵权,请联系作者删除。
参考知识
Git 教程
Git:GitLab 、GitHub、Gitee、GitCode的区别


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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

npm, yarn, pnpm之间的区别

前言 在现代化的开发中,一个人可能同时开发多个项目,安装的项目越来越多,所随之安装的依赖包也越来越臃肿,而且有时候所安装的速度也很慢,甚至会安装失败。 因此我们就需要去了解一下,我们的包管理器&#…

vscode上传本地文件到服务器

vscode上传本地文件到服务器 首先下载插件SFTP,我们通过ftp进行文件传输 VScode打开要传输的文件 使用快捷键 ctrlshiftP 打开搜索窗口,搜索SFTP 点击之后vscode文件夹下会生成对应json文件 我们编辑json信息根据远程的服务器情况填写,比如…

Next.js 实战 (二):搭建 Layouts 基础排版布局

前言 等了许久,Next.js 终于迎来了 v15.x 版本,刚好 Github 上面的旧项目重构完,终于可以放心大胆地去研究 Next.js了。 搭建最新项目可以参考官方文档:Installation 最新的 Next.js 版本,使用的是 React19.x 内测版…

Java的Stirng、StringBuilder、StringJoiner

黑马程序员Java个人笔记 目录 字符串比较 比较 boolean equals boolean equalsIgnoreCase 键盘录入和定义的字符串的比较 StringBuilder 打印 ​编辑 添加元素 反转 获取长度 toString 练习 对称字符串 拼接字符串 StringJoiner 概述 ​编辑 构造方法 只有…

elasticsearch(三)

文章目录 1.数据聚合1.1.聚合的种类1.2.DSL实现聚合1.2.1.Bucket聚合语法1.2.2.聚合结果排序1.2.3.限定聚合范围1.2.4.Metric聚合语法 1.3.RestAPI实现聚合1.3.1.API语法1.3.2.业务需求1.3.3.业务实现 2.自动补全2.1.拼音分词器2.2.自定义分词器2.3.自动补全查询2.4.实现酒店搜…

Python_Flask03

这篇文章主要介绍的是数据库的增删改查操作,无多余好说的。 from flask import Flask from flask_sqlalchemy import SQLAlchemy from sqlalchemy import text from flask_migrate import Migrateapp Flask(__name__)# 本地基础信息的主机名 HOSTNAME "127.0…

Hive分区值的插入

对于Hive分区表,在我们插入数据的时候需要指定对应的分区值,而这里就会涉及很多种情况。比如静态分区插入、动态分区插入、提供的分区值和分区字段类型不一致,或者提供的分区值是NULL的情况,下面我们依次来展现下不同情况下的表现…

安达发|工业镜头APS高级排产的关键约束

工业镜头生产具有其特定的复杂性,如技术要求高、生产周期长、工序多等特点。在应用APS系统进行高级排产时,需要考虑以下关键约束: 1. 技术与质量约束 - 精度要求:工业镜头对精度的要求极高,这直接影响到排产计划中机加…

【SKFramework框架核心模块】3-9、资源模块

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群:398291828小红书小破站 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【Unity3D框架】SKFramework框架完全教程《全…

Swing中密码框组件

一、介绍 密码框(JPasswordField)与文本框的定义和用法基本相同,唯一不同的是密码框将用户输入的字符串以某种符号进行加密。密码框对象是通过javax.swing.JPasswordField类创建的。 二、常用构造方法 1、public JPasswordField() 2、pub…

SpringMVC ——(1)

1.SpringMVC请求流程 1.1 SpringMVC请求处理流程分析 Spring MVC框架也是⼀个基于请求驱动的Web框架,并且使⽤了前端控制器模式(是⽤来提供⼀个集中的请求处理机制,所有的请求都将由⼀个单⼀的处理程序处理来进⾏设计,再根据请求…

【英一】1998年

阅读1 suffering. 苦难at the mercy of. 完全受...的支配do ones bidding. 服从某人threaten to. 可能...(发生不好的事情)do more harm than good. 弊大于利strive to. 争取,努力assert. 主张cement. 巩固bid for. (尤指许下诺言)企图获得&…

BT.1120视频传输协议标准介绍

1.BT.1120 BT.656 协议主要是针对 PAL、NTSC下的标清视频。随着高清视频的发展的需要,又推出了 BT.1120 标准,它与 BT656 有许多类似的地方,不同点在于时钟频率更高了,更加适合高清视频的传输,隔行传输和逐行传输兼备。…

RabbitMQ学习-Eleven

SpringBoot中RabbitMQ的消息确认和Return机制 1.再application.yml文件中开启消息确认机制和return机制 spring:rabbitmq:publisher-confirm-type: simplepublisher-returns: true 2.创建confirm和return监听 // MsgConfirmAndReturn.java 中的代码片段Component public cla…

GAMES101 完结篇(笔记和作业)

写在前面 我已经把笔记和作业代码放在了GitHub上,欢迎访问GAMES101笔记及作业 (github.com),如果对你有帮助,欢迎fork or star 下面我想简单介绍一下这里面的东西 Homework Homework文件夹里有0~8的作业框架,参考的其他大佬的代…

修改mobaxterm字体为全绿色

修改前: 修改步骤步骤: 红色方框里面的颜色都改为绿色,然后点击OK 重启mobaxterm即可:

vue+mars3d叠加展示arcgis动态服务

数据格式:使用arcgis发布的动态服务 叠加和移除arcgis服务图层的方法 //加载arcgis地图服务function arcgisServer(i,d,m,p){i[d.data] new mars3d.layer.ArcGisLayer({name:d.label,url:p,flyTo: true})m.addLayer(i[d.data])}//移除arcgis服务范围线function rem…

模型案例:| 手机识别模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世,它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力,为人工智能技术的发展开辟了新的可能性。同时,人工智能技术正在进入各种应用领…

241205_给自己的应用加上语音助手功能

241205_给自己的应用加上语音助手功能 前面我们自己做了一个网易云音乐,但每次都要去点点点显得有点麻烦,所以我就考虑添加一些语音助手的功能。 其实当前在日常windows使用中,我觉得也就音乐播放需要一个语音助手交互,其他的功…

Navicat连接服务器MySQL

Navicat连接服务器MySQL 1. Navicat连接服务器MySQL2. 如何查看MySQL用户名和密码3. 修改MySQL登录密码4. 安装MySQL(Centos7)遇到错误和问题 1. error 1045 (28000): access denied for user ‘root’‘localhost’ (using password:yes) 1. Navicat连接服务器MySQL 选择数据…