Git & Git Flow & GitLab & GitHub

Git & Git Flow & GitLab & GitHub

Git

就算是只有浅薄开发经验的程序猿也能对Git有一个感性的认知。git分为本地仓库和远程仓库,我们一般情况都是写完代码,commit到本地仓库(生成本地仓的commit ID,代表当前提交代码的版本号),然后push到远程仓库(记录这个版本号),这个流程大家都熟悉。

简明地说,Git是一个分布式版本控制系统。

两部分:1.版本控制 2.分布式

210121_1

  1. 版本控制

    ​ 以前在没有使用版本控制的时候,我们通常在我们的项目根目录下这样命名项目:

    ​ project_v1、project_v1.1、project_v2等等,通过这种方式记录我们项目的不同版本的修改。如果两个版本之间只是简单的修改,要存储两份非常相似的文件。还会在不同版本的文件中写一个说明,记录此版本项目新增、修改,删除等操作。对于一些大型项目的开发,就会显得很麻烦,容易出错。

  2. 分布式

    集中式版本控制系统,版本库是集中存放在中央服务器的,工作的时候,用的是自己的电脑,所以,我们首先需要从中央服务器上拉取最新的版本,然后开始工作,等工作完了,再把自己的工作提交到中央服务器。在这里借用廖雪峰老师的一个比喻,中央服务器好比是一个图书馆,你要改其中的一本书,必须先要从图书馆里把书借出来,然后更改,改完之后,再放回图书馆。

    集中式版本控制系统的一个最大毛病就是必须联网才能工作,所以对于网络环境比较差的情况使用集中式版本控制系统是一件比较让人头疼的事情。

    分布式版本控制系统没有中央服务器的概念,我们使用相关的客户端提取的不只是最新的文件,而是把代码仓库完整地镜像下来,相当于每个人的电脑都是一个完整的版本库,这样的话,任何一处协同工作的服务器出现故障,都可以用任何一个镜像出来的本地仓库恢复。并且,即便在网络环境比较差的情况下也不用担心,因为版本库就在本地电脑上。

GitHub GitLab

  • GitHub是一个基于Git实现的在线代码仓库,是目前全球最大的代码托管平台,可以帮助程序员之间互相交流和学习。
  • GitLab是一个基于Git实现的在线代码仓库软件,你可以用GitLab自己搭建一个类似于GitHub一样的仓库,但是GitLab有完善的管理界面和权限控制,一般用于在企业、学校等内部网络搭建Git私服。
  • GitHub和GiLlab两个都是基于Web的Git远程仓库,它们都提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。从代码的私有性上来看,GitLab 是一个更好的选择。但是对于开源项目而言,GitHub 依然是代码托管的首选。

Git Flow

Git Flow是构建在Git之上的一个组织软件开发活动的模型,是围绕着project的发布(release)而定义的一个严格的如何建立分支的模型。我们知道,用Git新建分支是很简单的,但是如何在各分支间更好的协同是个问题。Git Flow为不同的分支分配了明确的角色,并定义分支之间何时以及如何进行交互。

包括了:

  1. 有哪些分支,他们的命名
  2. 各个分支的作用
  3. 提交信息的规范

参考:

git github gitlab gitflow 区别_ocean1010的专栏-CSDN博客

Git、GitHub、GitLab三者之间的联系以及区别 - 流光瞬息 - 博客园 (cnblogs.com)

Git,GitHub与GitLab有什么区别? - 知乎 (zhihu.com)

GitFlow简介_Arvin的博客-CSDN博客_gitflow

posted @ 2021-01-22 17:57  DDDoppler  阅读(102)  评论(0编辑  收藏  举报