公司之前用的是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

修改gitlab配置文件指定服务器ip和自定义端口:
vim  /etc/gitlab/gitlab.rb

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 服务器的搭建与使用全过程(一)的更多相关文章

  1. gitlab 服务器的搭建与使用全过程(二)

    <gitlab操作手册 1.0 > 此手册适用于 Mac 计算机 第一步:根据从管理员得到的用户名和初始密码登陆并修改密码.新密码不得少于8个字符 第二步:在自己的电脑上创建密钥,并提交提 ...

  2. Ubuntu搭建Gitlab服务器

    想到Gitlab就必定会想到SVN,因为两者都是代码管理系统,作为开发人员来说,用习惯了SVN的图形化界面和SVN代码更新和提交的方式, 可能就会觉得使用git会比较麻烦,其实不然git使用起来非常方 ...

  3. 搭建 Linux 下 GitLab 服务器

    转自:http://blog.csdn.net/passion_wu128/article/details/8216086 目录: 平台需求 硬件需求 本安装指南已于 DebianUbuntu 测试通 ...

  4. 搭建 Linux 下 GitLab 服务器(转)

    这两天因为项目需求需要搭建一个GitLab服务器,遇到了很多问题,参考了很多网络资料,终于搭建成功,在此把这个过程记录一下,利人利己. 一.最终目的 1,在Linux下创建GitLab服务器,客户端能 ...

  5. gitlab服务器搭建教程

    gitlab服务器搭建教程 ----2016年终总结 三 参考https://bbs.gitlab.cc/topic/35/gitlab-ce-8-7-%E6%BA%90%E7%A0%81%E5%AE ...

  6. 基于docer搭建私有gitlab服务器

    今天闲着无聊,于是乎想用最近很流行的docker容器搭建一个自己的gitlab的服务器,关于docker和gitlab就不多介绍了,网上查了很多资料,貌似没有一个统一的方法,很乱很杂,而且很容易误导人 ...

  7. 在Windows下搭建Gitlab服务器

    一.GitLab简介 GitLab 是一个用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在此基础上搭建起来的web服务. 可通过Web界面进行访问公开的或者私人项目.它拥有与Github类 ...

  8. Centos7使用docker搭建gitlab服务器

    了解到docker的优点,搭建快,运行要求资源低,最重要的是实现的功能和效果都能达到预期,于是决定使用docker来搭建gitlab服务器. 效果图如下: 系统环境:CentOS Linux rele ...

  9. 搭建GitLab服务器

    前言 每一个开发工作者无非身处2中开发环境:1.开源环境  2.闭源开发环境,若你身处闭源环境或对自己代码安全性要求较高,搭建和使用自己GitLab服务器是必不可少的环节. 可以通过各种方式搭建自己的 ...

随机推荐

  1. CentOS 6.8 安装 Erlang 及 RabbitMQ Server

    安装 Erlang 19.3 # 安装依赖包 yum install -y gcc gcc-c++ unixODBC-devel openssl-devel ncurses-devel # 下载 er ...

  2. look-into-oracle-redo

    https://fritshoogland.wordpress.com/2018/02/05/a-look-into-oracle-redo-part-2-the-discovery-of-the-k ...

  3. 这可能是最好的RxJava 2.x 入门教程(一)

    这可能是最好的 RxJava 2.x 入门教程系列专栏 文章链接: 这可能是最好的 RxJava 2.x 入门教程(完结版)[重磅推出] 这可能是最好的RxJava 2.x 入门教程(一) 这可能是最 ...

  4. Android典型界面设计(5)——使用SlidingMenu和DrawerLayout分别实现左右侧边栏

    一.问题描述 侧边栏是Android应用中十分常见的界面效果,可随主屏在左侧或右侧联动,是特别适应手机等小屏幕特性的典型界面设计方案之一,常用作应用的操作菜单,如图所示 实现侧边栏可以使用第三方组件s ...

  5. C# 6 的新特性~

    原文地址 Mads Torgersen,微软 C# 程序管理者,它发布了一个视频,描述即将到来的下一个 C# 版本--C# 6.在 C# 6 的新特性之间,Mads 主要提到了 getter-only ...

  6. sublime text 3-right click context menu

    dd a system wide windows explorer button " Edit with Sublime" similar to how Notepad++ doe ...

  7. SoapUI Pro Project Solution Collection –Easy develop Groovy Script to improve SoapUI ability

    As you know the groovy script and java script language is the soapui supported .but unfortunately So ...

  8. Linux系统如何将某一程序设置为开机自启动

    文章来源:百度知道. Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍L ...

  9. mysql 物理数据存放

    报错误:1030 - Got error 28 from storage engine 3.在系统中查看/tmp是否已经满了: [root@localhost /]# df /tmp/ Filesys ...

  10. PHP——自定义比较算法

    很多时候,程序都是直接写好逻辑运算,提供给用户的是一个值,然后后台去比较:但是有时会提供一种类似计算器一样的交互方式的时候,PHP只能读懂用户的输入来进行比较了- 最近的一个项目涉及到一个由用户自定义 ...