Git服务(一):部署企业级github服务

一、Git的诞生:

  很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了,Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符,不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统,安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权,Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下,Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。

  2002年之前linux的开发者使用提交代码之后使用diff命令进行代码合并,在2002年之后有个商业版的版本控制软件BitKeeper免费授权给linux使用,但是在2005年的时候samba的作者Andrew试图破解BitKeeper的协议但是被监控发现了,于是Linus没有道歉,而且花费两周时间使用C语言重新编写了一个分布式的版本控制系统,就是当前最牛的分布式版本控制系统Git。

  Git在每个用户都有一个完整的服务器,然后在有一个中央服务器,用户可以先将代码提交到本地,没有网络也可以先提交到本地,然后在有网络的时候再提交到中央服务器,这样就大大方便了开发者,而相比CVS和SVN都是集中式的版本控制系统,工作的时候需要先从中央服务器获取最新的代码,改完之后需要提交,如果是一个比较大的文件则需要足够快的网络才能快速提交完成,而使用分布式的版本控制系统,每个用户都是一个完整的版本库,即使没有中央服务器也可以提交代码或者回滚,最终再把改好的代码提交至中央服务器进行合并即可。

  关于分支:
  master分支,进行发布的版本
  dev 分支,也是测试的代码分支,测试没有问题之后合并到master
  自己的分支

二、Git的安装

mkdir /home/tools
cd /home/tools/
wget https://bitnami.com/redirect/to/96764/bitnami-gitlab-8.5.1-0-linux-x64-installer.run
chmod +x ./bitnami-gitlab-8.5.1-0-linux-x64-installer.run 
./bitnami-gitlab-8.5.1-0-linux-x64-installer.run 
----------------------------------------------------------------------------
Welcome to the Bitnami Gitlab Stack Setup Wizard.

----------------------------------------------------------------------------
Select the components you want to install; clear the components you do not want 
to install. Click Next when you are ready to continue.

PhpPgAdmin [Y/n] :n

GitLab : Y (Cannot be edited)

Is the selection above correct? [Y/n]: y

----------------------------------------------------------------------------
Installation folder

Please, choose a folder to install Bitnami Gitlab Stack

Select a folder [/opt/gitlab-8.5.1-0]: /data/app/gitlab

----------------------------------------------------------------------------
Create Admin account

Bitnami Gitlab Stack admin user creation

Email Address [user@example.com]: chenxin@123.com

Login [user]: chenxin  #登陆时的用户名

Password :        #登陆时的密码
Please confirm your password :
Warning: The length of the password must be equal or greater than 8
Press [Enter] to continue:
----------------------------------------------------------------------------
Create Admin account

Bitnami Gitlab Stack admin user creation

Email Address [chenxin@123.com]: 

Login [chenxin]: 

Password :
Please confirm your password :
----------------------------------------------------------------------------
Hostname that will be used to create internal URLs. If this value is incorrect, 
you may be unable to access your Gitlab installation from other computers. It is 
advisable to use a Domain instead of an IP address for compatibility with 
different browsers.

Domain [127.0.0.1]: 172.16.1.100

Do you want to configure mail support? [y/N]: y

----------------------------------------------------------------------------
Configure SMTP Settings

This is required so your application can send notifications via email.

Default email provider:

[1] GMail
[2] Custom
Please choose an option [1] : 2

----------------------------------------------------------------------------
Configure SMTP Settings

This data is stored in the application configuration files and may be visible to 
others. For this reason, it is recommended that you do not use your personal 
account credentials.

Username []: chenxin@123.com  #发送邮件的邮箱

Password :            #邮箱的密码
Re-enter :
SMTP Host []: smtp.qiye.163.com

SMTP Port [587]: 110

Secure connection

[1] None
[2] SSL
[3] TLS
Please choose an option [3] : 1

----------------------------------------------------------------------------
Setup is now ready to begin installing Bitnami Gitlab Stack on your computer.

Do you want to continue? [Y/n]: y

----------------------------------------------------------------------------
Please wait while Setup installs Bitnami Gitlab Stack on your computer.

 Installing
 0% ______________ 50% ______________ 100%
 #########################################

----------------------------------------------------------------------------
Setup has finished installing Bitnami Gitlab Stack on your computer.

Info: To access the Bitnami Gitlab Stack, go to
http://172.16.1.100:80 from your browser.
Press [Enter] to continue

三、配置git服务

3.1 初始化配置

3.1.1 为了安全问题,首先去掉登陆页面注册账户的模块,如下图。

3.1.2 添加用户,如下图。

3.1.3 给用户添加ssh keys密钥认证,如下图。

 3.1.4 创建组,组里面可以有多个项目分支,可以将开发添加到组里面进行设置权限,不同的组就是公司不同的开发项目或者业务模块,不同的组添加不同的开发即可实现对开发设置权限的管理。

3.1.5 创建项目

3.1.6 添加用户到指定组中

四、配置客户端

编辑~/.ssh/config文件,添加以下几行:
Host 172.16.17.100
User git 
Port 22


在本地已有的工程目录下,将.git/config文件中的
url = git@sinosig101:root/<project_name>.git
改成
url = ssh://git@172.16.17.100/myweb/<project_name>.git

登录http://172.16.17.100,用自己的用户名/密码登录,初始用户名为自己的姓名全拼,密码与用户名一致,但至少8位,不足8位补其123至8位,如:
zhangsan/zhangsan
lisi/sili360
加入自己的ssh-public-key即可
 
原文地址:https://www.cnblogs.com/cxcx/p/6121247.html