gitlab 服务器的搭建与使用全过程(一)
公司之前用的是vpn,然后老大说让我搞一个git。于是,我开始了git的研究之路。。。。
概念:(说实话,看了还是有些不太理解)
git 是一种版本控制系统,是一个命令,是一种工具
gitlib 是用于实现git功能的开发库
github 是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放
gitlab 是一个基于git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于
github一样的系统,一般用于在企业、学校等内部网络搭建git私服
刚开始,我直接在阿里云租了一台最便宜的linux服务器,然后就yum -y install git 。。。于是git就安装好啦。。然后在客户端上设置了一些东西之后就ok啦,文件代码可以上传和下载啦。。。再后来我想怎么对git进行管理呢? 虽然客户端能够看到一个个文件,但是服务端好像看不到文件,只是多出了一些看不懂的文件。。。于是我发现gitlab似乎可以进行管理。。。接下来我就开始了对gitlab的研究之路。。。
第一阶段:git服务器的最简单搭建和客户端最简单的使用。
准备:
服务端:阿里云服务器 centos 7.4
(最好要4G内存的,其他不做要求,因为在后面安装gitlab过程中,刚开始我用的是阿里云最便宜的入门级服务器,内存512M,结果安装过程中总是出现各种奇奇怪怪的错误,后来看了官方文档,说是最好准备4G内存,结果换了以一下子就安装上了,不可思议。)
客户端:公司的mac电脑
帮助文档:http://www.runoob.com/git/git-tutorial.html
https://www.cnblogs.com/ganbo/p/7794281.html
- 步骤一:服务端安装git
[root@gitlab ~]# uname -a ——》设备信息
Linux gitlab 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@gitlab ~]# yum -y install git ——》安装
[root@gitlab ~]# git version ——》查看当前版本
git version 1.8.3.1
[root@gitlab ~]# useradd git ——》创建git用户和密码
[root@gitlab ~]# passwd git
Changing password for user git.
New password: 123456 ——————》为了试验的方便,后面所有要用到密码的地方都设为123456
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@gitlab ~]# su - git ————》注意,除非特别说明,后面的命令都以git用户执行
[git@gitlab ~]$ ls
[git@gitlab ~]$
[git@gitlab ~]$ mkdir .ssh
[git@gitlab ~]$ touch .ssh/authorized_keys ————》创建公钥存放位置。也是为了安全性,尽管ssh-copy-id命令可以直接传递公钥,但是客户端必须得知道git密码。在这边直接创建了之后,我们只需要要求客户端自己生成密钥,然后将公钥传给git管理员,由git管理员添加就行了
[git@gitlab ~]$ chmod 755 .ssh/
[git@gitlab ~]$ chmod 644 .ssh/authorized_keys
********备注提示:网上有人说按照下面的步骤可以增加安全性. ..但我目前不会这么做,因为我是用git用户去操作的,避免了很多需要额外添加权限的问题。这个大家在百度的时候可以看到很多需要用chown去添加git权限***********
[git@gitlab gitrepo]$ exit ——》先暂时切换回root用户
logout
[root@gitlab ~]#
[root@gitlab ~]# vim /etc/passwd ————》修改入下图所示


此时 git 用户可以正常通过 ssh 使用 git,但无法通过 ssh 登录系统。也是为了安全性。
****************参照我的文章的小伙伴千万不要设置上面这个步骤哦,也许等到所有的项目全部都搭建好了,可以进行这个操作*********************
[git@gitlab ~]$ ls
[git@gitlab ~]$ pwd
/home/git
[git@gitlab ~]$ mkdir gitrepo ——》创建或选定一个目录作为git仓库的存放目录
[git@gitlab ~]$ ll
total 4
drwxrwxr-x 2 git git 4096 Apr 27 11:37 gitrepo
[git@gitlab ~]$ cd gitrepo/
[git@gitlab gitrepo]$ git init --bare xiangmu-1.git ————》在选定目录下创建git空仓库 xiangmu-1
Initialized empty Git repository in /home/git/gitrepo/xiangmu-1.git/
[git@gitlab gitrepo]$ git init --bare xiangmu-2.git ————》在选定目录下创建git空仓库 xiangmu-2
Initialized empty Git repository in /home/git/gitrepo/xiangmu-2.git/
[git@gitlab gitrepo]$ git init --bare xiangmu-3.git ————》在选定目录下创建git空仓库 xiangmu-3
Initialized empty Git repository in /home/git/gitrepo/xiangmu-3.git/
[git@gitlab gitrepo]$ ls
xiangmu-1.git xiangmu-2.git xiangmu-3.git
ok服务器设置先告一段落。接下来在客户端配置了。
步骤二:mac客户端设置
因为mac有自带的终端控制设备。windows的小伙伴就自己去解决吧。哈哈。

不知道是因为我之前多次试验然后没有清理干净的缘故,还是mac自带git命令的缘故。反正我这边有git命令。
我会介绍两种操作方法,一个是命令行的下载和上传。一个是git客户端工具的上传和下载。。。。
Git 完整命令手册地址:http://git-scm.com/docs
PDF 版命令手册:github-git-cheat-sheet.pdf
先说一说终端控制设备的操作步骤:
先创建ssh密钥:
命令:ssh-keygen
得到: id_rsa(私钥) id_rsa.pub(公钥) 这两个文件
SHIJUNJIE-MAC:~ shijunjie$ pwd
/Users/shijunjie
SHIJUNJIE-MAC:~ shijunjie$ ls .ssh/
id_rsa id_rsa.pub known_hosts
SHIJUNJIE-MAC:~ shijunjie$
打开公钥 id_rsa.pub,将里面的内容直接复制到之前在git服务端创建的.ssh/authorized_keys文件内
SHIJUNJIE-MAC:~ shijunjie$ cat ./.ssh/id_rsa.pub
[git@gitlab ~]$ vim ./.ssh/authorized_keys
在本地客户端创建一个存放git仓库的目录,例如:
SHIJUNJIE-MAC:~ shijunjie$ mkdir git
SHIJUNJIE-MAC:~ shijunjie$ cd git/
SHIJUNJIE-MAC:git shijunjie$ pwd
/Users/shijunjie/git
将服务端的仓库克隆一个到本地git目录下:
SHIJUNJIE-MAC:git shijunjie$ pwd
/Users/shijunjie/git
SHIJUNJIE-MAC:git shijunjie$ git clone git@47.98.245.86:/home/git/gitrepo/xiangmu-1.git
Cloning into 'xiangmu-1'...
warning: You appear to have cloned an empty repository.
SHIJUNJIE-MAC:git shijunjie$ ls
xiangmu-1
ok,这样就弄好啦,小伙伴可以愉快的操作了。
Git 完整命令手册地址:http://git-scm.com/docs
PDF 版命令手册:github-git-cheat-sheet.pdf
接下来说一说客户端工具吧
工具下载地址在这里:
https://git-scm.com/download/gui/mac。
工具有好多,小伙伴本可以一个个去尝试一下。。在这边本人就慷慨的介绍一下2种工具吧。。。
SourceTree

感觉注册有点麻烦,不过使用还行。
使用前记得在设置界面设置一下,不然绝对会让你疯狂。。。。



账户不需要。。。





GitHub Desktop




ok这样2中工具的克隆仓库大概就是这样子了。。。具体更多的操作就需要小伙伴们自己去摸索了,也可以留言给我。。。
第二阶段:gitlab 托管(管理)系统的搭建
参考文档:https://www.cnblogs.com/ganbo/p/7794281.html
在这里我是用清华大学的镜像站直接安装的。再次提醒小伙伴,内存一定要够哦,我没试过2G行不行的,因为刚开始用的512M的入门级阿里云服务器,结果不行,后来就直接用4G的了。。
https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/. 镜像站

搭建步骤:
[git@gitlab ~]$ exit ————》先切换回root用户
logout
[root@gitlab git]#
[root@gitlab git]# vim /etc/yum.repos.d/gitlab-ce.repo
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
[root@gitlab git]# yum makecache
[root@gitlab git]# yum install gitlab-ce

ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口
[root@gitlab git]# gitlab-ctl reconfigure
[root@gitlab git]# gitlab-ctl restart
ok 到这里为止gitlab就搭建好啦。。。下面让我们登陆上去看看。
只需要输入你之前在/etc/gitlab/gitlab.rb里设置的地址就能进去了,首次登陆会让你输入用户名和密码,以及新密码设置

初始账户: root 密码: 5iveL!fe


由于都是英文,于是我想有没有汉化的呢? 在qq群:linux学习交流 148412746 里的一位群友给了我一个连接。于是我走上了汉化的不归路。。。
https://gitlab.com/xhang/gitlab/tree/9-0-stable-zh

根据这个指示我一步步做下去:
[root@gitlab git]# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
10.7.1
我找到了下面这个,确认汉化版本包含了我所使用的这个版本10.7.1:

[root@gitlab ~]# pwd ————》确认当前位置
/root
[root@gitlab ~]# git clone https://gitlab.com/xhang/gitlab.git ——》克隆汉化版本库
Cloning into 'gitlab'...
remote: Counting objects: 735568, done.
remote: Compressing objects: 100% (152381/152381), done.
remote: Total 735568 (delta 574996), reused 734906 (delta 574378)
Receiving objects: 100% (735568/735568), 294.48 MiB | 2.53 MiB/s, done.
Resolving deltas: 100% (574996/574996), done.
[root@gitlab ~]# ls
gitlab
[root@gitlab ~]# cd gitlab/
[root@gitlab gitlab]# git diff v10.7.1 v10.7.1-zh > ../10.7.1-zh.diff ——》导出汉化包
[root@gitlab gitlab]# cd
[root@gitlab ~]# ls
10.7.1-zh.diff gitlab
[root@gitlab ~]# gitlab-ctl stop
[root@gitlab ~]# patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < 10.7.1-zh.diff
[root@gitlab ~]# gitlab-ctl reconfigure ——》重新编译
[root@gitlab ~]# gitlab-ctl restart ——》启动
ok。这样就安装好啦,接下来我们看看效果吧:

哈哈。到这里汉化就全部搞定了,接下来就是研究这玩意如何去操作了。。。。
gitlab 服务器的搭建与使用全过程(一)的更多相关文章
- gitlab 服务器的搭建与使用全过程(二)
<gitlab操作手册 1.0 > 此手册适用于 Mac 计算机 第一步:根据从管理员得到的用户名和初始密码登陆并修改密码.新密码不得少于8个字符 第二步:在自己的电脑上创建密钥,并提交提 ...
- Ubuntu搭建Gitlab服务器
想到Gitlab就必定会想到SVN,因为两者都是代码管理系统,作为开发人员来说,用习惯了SVN的图形化界面和SVN代码更新和提交的方式, 可能就会觉得使用git会比较麻烦,其实不然git使用起来非常方 ...
- 搭建 Linux 下 GitLab 服务器
转自:http://blog.csdn.net/passion_wu128/article/details/8216086 目录: 平台需求 硬件需求 本安装指南已于 DebianUbuntu 测试通 ...
- 搭建 Linux 下 GitLab 服务器(转)
这两天因为项目需求需要搭建一个GitLab服务器,遇到了很多问题,参考了很多网络资料,终于搭建成功,在此把这个过程记录一下,利人利己. 一.最终目的 1,在Linux下创建GitLab服务器,客户端能 ...
- gitlab服务器搭建教程
gitlab服务器搭建教程 ----2016年终总结 三 参考https://bbs.gitlab.cc/topic/35/gitlab-ce-8-7-%E6%BA%90%E7%A0%81%E5%AE ...
- 基于docer搭建私有gitlab服务器
今天闲着无聊,于是乎想用最近很流行的docker容器搭建一个自己的gitlab的服务器,关于docker和gitlab就不多介绍了,网上查了很多资料,貌似没有一个统一的方法,很乱很杂,而且很容易误导人 ...
- 在Windows下搭建Gitlab服务器
一.GitLab简介 GitLab 是一个用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 可通过Web界面进行访问公开的或者私人项目.它拥有与Github类 ...
- Centos7使用docker搭建gitlab服务器
了解到docker的优点,搭建快,运行要求资源低,最重要的是实现的功能和效果都能达到预期,于是决定使用docker来搭建gitlab服务器. 效果图如下: 系统环境:CentOS Linux rele ...
- 搭建GitLab服务器
前言 每一个开发工作者无非身处2中开发环境:1.开源环境 2.闭源开发环境,若你身处闭源环境或对自己代码安全性要求较高,搭建和使用自己GitLab服务器是必不可少的环节. 可以通过各种方式搭建自己的 ...
随机推荐
- ZegGraph属性含义
一.主要内容概念 属性名称 属性值.作用 MasterPane 一个类对象管理多个GraphPane来源于PaneBase.使用MasterPane类都是可选的,GraphPane类可以直接用于一个单 ...
- c++中几种常见的类型转换。int与string的转换,float与string的转换以及string和long类型之间的相互转换。to_string函数的实现和应用。
1.string转换为int a.采用标准库中atoi函数,对于float和龙类型也都有相应的标准库函数,比如浮点型atof(),long型atol(). 他的主要功能是将一个字符串转化为一个数字,在 ...
- ES6 js中const,var,let区别 今天第一次遇到const定义的变量
今天第一次遇到const定义的变量,查阅了相关资料整理了这篇文章.主要内容是:js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始化. 1 ...
- PL/SQL中复制中文再粘贴出现乱码问题的解决【转】
前不久!我对我的windowsxp做了一番大规模的设置:包括区域.系统.网络等方面的,结果当我设置完成以后,发现如果我从一些软件上复制内容到记事本里面会出现乱码,而且如果复制到word里面也不能够正常 ...
- log4net.Layout.PatternLayout 用 conversion 模式格式化日志事件【翻译】
原文地址 log4net.Layout.PatternLayout,是一个灵活的布局,配置模式字符串. 线程安全.该类型的 Public static 成员对多线程操作是安全的.实例成员不保证线程安全 ...
- Android上实现各种风格的隐藏菜单,比如左右滑动菜单、上下滑动显示隐藏菜单
Android上的菜单展示风格目前是各式各样的,但用的最多且体验最好的莫过于左右滑动来显示隐藏的菜单本示例实现了各种方式的菜单展示效果,只有你想不到的源码:https://github.com/Sim ...
- settings.xml配置详解
简单值 一半顶层settings元素是简单值,它们表示的一系列值可以配置Maven的核心行为:settings.xml中的简单顶层元素 < settings xmlns="http:/ ...
- MySQL 的主从原理和复制过程简述
一.MySQL 复制的基本过程如下:1. Slave 上面的IO线程连接上 Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容; 2. Master 接收到来自 Slav ...
- sql in not in 案例用 exists not exists 代替
from AppStoke B WHERE B.Opencode=A.Code) in用extist代替 select distinct * from Stoke where Code not in ...
- 【转】Error:JAVA_HOME is not set and could not be found
如果stop-dfs.sh也报了这个错,把$HADOOP_HOME/libexec/hadoop-config.sh中的如下内容之前加上 export JAVA_HOME=/home/lqr/Tool ...