packagist(php.../>

常见的git托管平台和git服务

git 2018-10-25 浏览(2615 评论(2

(一)常见的git代码托管平台

1.国外:

    1.github->packagist(php 软件包仓库)
        由 Git (著名的 Git 版本控制软件) 和 Hub( 「 中心 」 的意思) 两个词合成。
        开源项目的聚集地,程序员的另类简历。到目前为止 Github 汇集了全球 2100 万程序员,5600 万代码仓库,11 万 7 千个企业
        网址:https://github.com/
    2.BitBucket
        由 Bit (二进制位,「 比特 」) 和 Bucket(桶) 两个词合成。
        同时支持 Git 和 Mercurial 这两个版本控制软件。
        免费的私有仓库,支持5人以内的合作开发。
        网址:https://bitbucket.org/
    3.SourceForge
        由 Source (源(码)) 和 Forge(锻造车间,熔炉) 两个词合成。
        网址:https://sourceforge.net/

2.国内:

    1.码云
        国内最大的开源社区 OSChina 的代码托管平台。
        提供团队协作开发。可创建 1000 个项目,不限私有或公有。
        网址:https://gitee.com/
    2.coding(码市)
        CODING (码市)是国内首个一站式云端软件服务平台。
        云端软件开发协作平台,目前已累积 30 万开发者,50 万个项目。
        网址:https://coding.net/
    3.百度效率云
        百度的代码托管平台。依托于百度这样的巨头,优势明显。
        代码托管,版本管理,持续集成,交付,敏捷项目管理。
        网址:http://xiaolvyun.baidu.com/
    4.csdn(2018年10月31日彻底关闭CODE服务)
        作为国内最大的编程社区,CSDN 的代码托管平台自然不会差。
        CSDN 的代码托管平台一大特色是和CSDN 的博客实现连接,在博客中可以方便地引用平台上的代码,在博客中写入的代码也可以自动保存到平台上。
        网址:https://code.csdn.net
    5.京东(已关闭)

(二)私有化的git服务

1.web界面:

    1.gitlab(github的开源版本)
    2.Gerrit(git+repo+gerrit,超级重量级,集版本控制,库管理和代码审核为一身。可管理大型及超大型项目。
        1.GitLab 与 Gerrit区别  
            相信大家看到这里,会发现gitlab比gerrit多了许多功能,比如说Issues,Wiki等。 我们从几个方面对比下2者:
            
            ###开发风格:
                gitlab的特点是一个人维系一个分支。 gerrit的特点是一个团队维系一个分支。(这里的分支对应一个业务需求)
            
            ###权限管理:
                gitlab提供了比较多的选择,可以根据需要创建project,每个团队可以根据自己的需求管理自己的代码,方式更加的灵活。 gerrit比较单一,而且权限配置              比较复 杂,往往都是要联系管理员做出修改,每个团队很难做到对代码的个性化管理。
            
            ###代码评审:
                sql"> gitlab是以merge request作为一次review,merge request中可能包含多个 commit,如果review不通过也不需要发起另一次merge request。 gerrit是以commit作为一次review,由于changeId的存在,可以对一次commit反复的进行review。 如果task划分的粒度够细的话,并不会影响各个团队的review习惯。
            
            ###团队协作:
                gitlab可以选择公开代码,团队间可以看到互相的代码,有利于团队的协作。 gerrit由于权限控制问题,只能在权限范围内公开代码。
            
            ###信息共享:
                css"> gitlab 可以提供issues,wiki等功能方便开发者与使用者之间的沟通,并且gitlab可以无缝的与一些项目管理工具集成,比如:jira gerrit 这个方面比较欠缺。 gitlab每个项目都有自己的wiki,很方便查看。
            
            ###有关gitlab+gerrit+jenkins集成:
                现在比较流行的CI系统,gitlab提供代码查看功能,gerrit保存真正得代码,jenkins通过plugin发布 gerrit上的代码。 这样做没有体现出gitlab的特点,而且由于gerrit的权限问题,很多代码无法放在gitlab上,gitlab沦为代码查看工具,很多功能形同虚设。 有关docker: 考虑到公司将使用docker技术,对于dockerfile存放等问题,gitlab比gerrit支持的更好(因为权限,文件查看的问题)。
                
            ###有关CI:
                jenkins提供了plugin,可以通过从gitlab上拉取代码直接部署(已测试成功,CA采用sshkey)。
                
            ###总结:
                gerrit作为谷歌管理安卓项目的版本管理工具还是有其优点的, 多部门之间的权限隔离,强制review的机制都是其优点, 反观gitlab作为github的开源版,遵循了一套开源的流程,比较符合大多数人得习惯。 所以,通过比较,推荐使用gitlab作为版本管理工具,并且不与gerrit做集成。
    3.gogs(go git service)
        1.Gogs简介
            Gogs 是一款类似GitHub的开源文件/代码管理系统(基于Git),Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
        2.基本功能介绍
            远程代码仓库管理
            代码仓库权限分配、管理
            团队管理
            代码审查
        3.https://gogs.io/docs
    4.gitea(git with a cup of tea) 
        1.gitea简介
            Gitea是从Gogs发展而来,同样的拥有极易安装,运行快速的特点,而且更新比Gogs频繁很多,维护的人也多,Gitea是一个极易安装,运行非常快速,安装和使用体验良好的自建Git服务。采用Go作为后端语言,这使得只要生成一个可执行程序即可。并且他还支持跨平台,支持Linux、macOS和Windows以及各种架构,除了x86,amd64,还包括ARM和 PowerPC。
        2.基本功能介绍
            远程代码仓库管理
            代码仓库权限分配、管理
            团队管理
            代码审查
        3.官网地址:https://gitea.io/zh-cn/

2.非web界面:

    1.Gitosis - 轻量级,开源项目,使用SSH公钥认证,只能做到库级的权限控制。目前项目已经停止开发,不再维护。

    2.Gitolite - 轻量级,开源项目,使用SSH公钥认证,能做到分支级的权限控制。gitolite原本是作为gitosis的lite版本出现的,可是现在的功能甚至已经超过gitosis了。

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^

黄信强博客

最新评论

总共2条评论

  • 黄信强博客
    sitez 评论 2018-11-01 09:41:48

    so good回复

  • 黄信强博客
    645561618 评论 2018-10-30 19:05:53

    顶起回复