分布式版本控制系统Git| 国内代码托管中心-Gitee自建代码托管平台-GitLab

Posted @每天都要敲代码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分布式版本控制系统Git| 国内代码托管中心-Gitee自建代码托管平台-GitLab相关的知识,希望对你有一定的参考价值。

目录

一:国内代码托管中心-码云

1. 码云创建远程库

2. IDEA 集成码云

3. 码云复制 GitHub 项目

二:自建代码托管平台-GitLab

1. GitLab 安装

2. IDEA 集成 GitLab


一:国内代码托管中心-码云

        众所周知,GitHub 服务器在国外,使用 GitHub 作为项目托管网站,如果网速不好的话, 严重影响使用体验,甚至会出现登录不上的情况(个人感觉手机热点更容易登入)。针对这个情况,大家也可以使用国内的项目托管网站-码云(Gitee)。

        码云是开源中国推出的基于 Git 的代码托管服务中心,网址是https://gitee.com/,自己进行注册登录,使用方式跟 GitHub 一样,而且它还是一个中文网站(很流畅),如果你英文不是很好它是最好的选择。

1. 码云创建远程库

点击首页右上角的加号,选择下面的新建仓库

填写仓库名称,路径和选择是否开源(现在默认只能是私有库了,可以在仓库管理进行更改)

远程库创建好以后,就可以看到 HTTPS 和 SSH 的链接

注:码云的服务器在国内,很容易就可以使用HTTPS进行连接!

可以手动把原先创建的私有库修改为公有的库

2. IDEA 集成码云

2.1 IDEA 安装码云插件

Idea 默认不带码云插件,我们第一步要安装 Gitee 插件。如图所示,在 Idea 插件商店搜索 Gitee,然后点击右侧的 Install 按钮!

注:对于老版本的IDEA可能需要提示重启IDEA后才会生效!

在 Version Control 设置里面看到 Gitee,说明码云插件安装成功

然后在码云插件里面添加码云帐号,我们就可以用 Idea 连接码云了。 

成功建立连接后会出现以下界面

 2.2 IDEA 连接码云

Idea 连接码云和连接 GitHub 几乎一样,首先在 Idea 里面创建一个工程,初始化 git 工 程,然后将代码添加到暂存区,提交到本地库,这些步骤上面已经讲过,此处不再赘述!

第一种推送方式:Git--->Gitee--->Share Project on Gitee

注:这种方式不需要提前创建好仓库,实际上会完成创建仓库和推送push这两个仓库!

第二种推送方式:右击鼠标--->选择Git--->Push

注:这种方式要提前创建好仓库,把仓库的URL复制过来,上面是它的别名!

此时登录码云的git test仓库,就能找到我们提交的项目

 注:只要码云远程库链接定义好以后,对码云远程库进行 pull 和 clone 的操作和 Github 一 致!

3. 码云复制 GitHub 项目

码云提供了直接复制 GitHub 项目的功能,方便我们做项目的迁移和下载;具体操作如下:

第一步:导入GitHub已有的仓库,拉取过来

①点击+,然后选择从GitHub/GitLab中导入仓库

②或者新建仓库

会有提示选择导入已有的其它网站仓库

进行授权验证,进行导入

 成功导入GitHub的git仓库

第二步:强制更新同步功能

如果此时GitHub上这个项目的代码改变了,在码云项目端可以手动重新同步,进行更新!

二:自建代码托管平台-GitLab

1. GitLab 安装

(1)GitLab 简介

        GitLab 是由 GitLabInc.开发,使用 MIT 许可证的基于网络的 Git 仓库管理工具,且具有

wiki 和 issue 跟踪功能。使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。         GitLab 由乌克兰程序员 DmitriyZaporozhets 和 ValerySizov 开发,它使用 Ruby 语言写 成。后来,一些部分用 Go 语言重写。截止 2018 年 5 月,该公司约有 290 名团队成员,以 及 2000 多名开源贡献者。GitLab 被 IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX 等组织使用。

(2)GitLab 官网地址

官网地址:https://about.gitlab.com/

安装说明:https://gitlab.cn/install/

准备一个系统为 CentOS7 以上版本的服务器,关闭防火墙,并且配置好主机名和 IP,保证服务器可以上网(ping一下就可以)!

(3)安装包准备

yum 在线安装 gitlab-ce 时,需要下载几百 M 的安装文件,非常耗时,所以最好提前把 所需 RPM 包下载到本地,然后使用离线 rpm 的方式安装。

下载地址:

https://packages.gitlab.com/gitlab/gitlabce/packages/el/7/gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm

注:资料里提供了此 rpm 包,直接将此包上传到服务器/opt/module 目录下即可。

(4)编写安装脚本

安装 gitlab 步骤比较繁琐,因此我们可以参考官网编写 gitlab 的安装脚本!

vim gitlab-install.sh

sudo rpm -ivh /opt/module/gitlab-ce-13.10.2-ce.0.el7.x86_64.rpm
sudo yum install -y curl policycoreutils-python openssh-server cronie
sudo lokkit -s http -s ssh
sudo yum install -y postfix
sudo service postfix start
sudo chkconfig postfix on
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlab-ce

给脚本增加执行权限

chmod +x gitlab-install.sh 

执行该脚本,开始安装 gitlab-ce

注:对于某些命令如果提示不存在,直接yum -y install 命令,进行下载即可!

./gitlab-install.sh

(5)初始化 GitLab 服务

执行以下命令初始化 GitLab 服务,过程大概需要几分钟

gitlab-ctl reconfigure 

一直进行run,直到出现以下提示,表示成功

(6)启动 GitLab 服务

执行以下命令启动 GitLab 服务;如需停止:执行 gitlab-ctl stop

gitlab-ctl start

(7)使用浏览器访问 GitLab

使用主机名(c1)或者 IP (192.168.2.129)地址即可访问 GitLab 服务都可以。

需要提前配一下 windows 的 hosts 文件。

#192.168.2.129 c1

在Linux的vim /etc/hosts也要更改

192.168.2.129 c1

使用ip进行访问回车,默认端口号是8080,会跳转到让我们设置登录密码,账户默认是root

注:如果此时报502错误,可能是GitLab启动某些服务比较慢,过一会再去访问!

 设置好密码后,就会跳转到登录界面

登录成功后,创建仓库

 设置仓库的名字

也是有两个链接可以完成连接

2. IDEA 集成 GitLab

(1)安装 GitLab 插件

(2)设置 GitLab 插件

(3)push 本地代码到 GitLab 远程库

注意:给的链接是一个案例的例子,需要我们手动替换

http://gitlab.example.com/root/get-test.git // 复制过来的地址连接
http://192.168.2.129/root/get-test.git // 修改后的链接

Git 第一章 Git概述 -- Git概述(版本控制版本控制工具Git历史工作机制Git和代码托管中心)

1. Git概述

  • Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
  • Git 易于学习,占地面积小,性能极快。 它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于 Subversion、CVS、Perforce 和 ClearCase 等版本控制工具。

Git官网


1.1 何为版本控制

  • 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
  • 版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。


1.2 为什么需要版本控制

可以方便的由个人开发过渡到团队协作。


1.3 版本控制工具


1.3.1 集中式版本控制工具

所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,
如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,
或在不同分支工作。而且,所有数据都保存在单一的服务器上,
有很大的风险这个服务器会损坏,这样就会丢失所有的数据,
当然可以定期备份。代表产品:SVN、CVS、VSS


1.3.2 分布式版本控制工具

每个人都拥有全部的代码!安全隐患!
不会因为服务器损坏或者网络问题,造成不能工作的情况!

所有版本信息仓库全部同步到本地的每个用户,
这样就可以在本地查看所有版本历史,可以离线在本地提交,
只需在连网时push到相应的服务器或其他用户那里。
由于每个用户那里保存的都是所有的版本数据,
只要有一个用户的设备没有问题就可以恢复所有的数据,
但这增加了本地存储空间的占用。


1.3.3 分布式版本控制 VS 集中式版本控制

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,
而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,
然后工作,完成工作后,需要把自己做完的活推送到中央服务器。
集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。


Git是分布式版本控制系统,没有中央服务器,
每个人的电脑就是一个完整的版本库,
工作的时候不需要联网了,因为版本都在自己电脑上。
协同的方法是这样的:比如说自己在电脑上改了文件A,
其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,
就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件!

1.4 Git 历史

同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。

Linux 内核开源项目有着为数众广的参与者。
绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上
(1991-2002年间)。到 2002 年,整个项目组开始启用一个
专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

Linux社区中存在很多的大佬!破解研究 BitKeeper !

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的
合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。
这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)
基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。(2周左右!) 
也就是后来的 Git!

Git是目前世界上最先进的分布式版本控制系统。

Git是免费、开源的,最初Git是为辅助 Linux 内核开发的,来替代 BitKeeper!

Linux和Git之父李纳斯·托沃兹(Linus Benedic Torvalds)1969、芬兰


1.5 Git 工作机制

Git–基本理论&工作流程


1.6 Git和代码托管中心



以上是关于分布式版本控制系统Git| 国内代码托管中心-Gitee自建代码托管平台-GitLab的主要内容,如果未能解决你的问题,请参考以下文章

git基本使用

git基本使用

如何把项目托管到GitHub

简单了解运用Git

Mac下Git的基础操作

Mac下Git的基础操作