公司之前用的是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种工具的克隆仓库大概就是这样子了。。。具体更多的操作就需要小伙伴们自己去摸索了,也可以留言给我。。。









好了,看到这边的小伙伴如果感觉看不懂,没关系,抛弃Git吧,直接安装gitlab就可以了,具体安装过程,在我的另一篇文章里。

第二阶段: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。这样就安装好啦,接下来我们看看效果吧:

哈哈。到这里汉化就全部搞定了,接下来就是研究这玩意如何去操作了。。。。

git 的搭建与使用的更多相关文章

  1. jenkins+git+maven搭建自动化部署项目环境

    简介    折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.co ...

  2. 基于阿里云服务器的git服务器搭建

    使用阿里云Ubuntu 12.0.4 64位操作系统做git服务器. 首先git服务器有两种访问方式可以选择:http方式和ssh的方式,http方式更容易使用. 1.http方式的git服务器搭建以 ...

  3. CentOS 6.5下Git服务器搭建

    1 . Git服务器搭建 1. 环境部署 系统环境:服务器端:CentOS 6.5 ,ip:192.168.56.1 客户端:CentOS 6.5 ,ip:192.168.56.101 软件版本:服务 ...

  4. 【转】Windows平台下Git服务器搭建

    Windows平台下Git服务器搭建 Posted on 2015-05-18 21:29 阿祥当码农 阅读(7637) 评论(0) 编辑 收藏 该文章转自:http://www.codeceo.co ...

  5. Git系列(1) Windows下Git服务器搭建

    作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 我们这里只需要两个软件git和ssh, ...

  6. Windows下Git服务器搭建[转]

    Windows下Git服务器搭建   作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...

  7. Git服务搭建及github使用教程

    .pos { position: fixed; top: 35%; left: 90% } .pos a { border: 2px solid white; background: #99CCFF; ...

  8. ECS之Git服务器搭建

    最简教程 ### . 安装Git 安装Git服务,命令如下: ```Shell $ yum install curl-devel expat-devel gettext-devel openssl-d ...

  9. Git+Hexo搭建个人博客详细过程

    通过Git+Hexo搭建的个人博客地址:https://liangh.top/ 1.安装Node.js.配置好Node.js环境.安装Git和配置好Git环境,打开cmd命令行,成功界面如下 2.安装 ...

  10. git 入门教程之 git 私服搭建教程

    git 私服搭建教程 前几节我们的远程仓库使用的是 github 网站,托管项目大多是公开的,如果不想让任何人都能看到就需要收费,而且 github 网站毕竟在国外,访问速度太慢,基于上述两点原因,我 ...

随机推荐

  1. 在Linux里安装jdk

    一.系统环境说明: [操作系统]:Ubuntu 18.04.1 Desktop [JDK]:jdk1.8.0_181,文件名称:jdk-8u181-linux-x64.tar 二.准备jdk文件 下载 ...

  2. 算法Sedgewick第四版-第1章基础-1.4 Analysis of Algorithms-002如何改进算法

    1. package algorithms.analysis14; import algorithms.util.In; import algorithms.util.StdOut; /******* ...

  3. R: 聚类分析

    判别与聚类的比较: 聚类分析和判别分析有相似的作用,都是起到分类的作用. 判别分析是已知分类然后总结出判别规则,是一种有指导的学习: 聚类分析则是有了一批样本,不知道它们的分类,甚至连分成几类也不知道 ...

  4. iOS Simulator hang up ( Xcode4.6.3)

    最近遇见个Xcode的bug,搞的十分郁闷. 具体现象是:程序前段时间都是好好的,可以运行,第二天开机,调试就无法进入模拟器.就连main()函数都进不了.模拟器完全挂起了.具体说来就是代码一句都没改 ...

  5. netty中的位操作

    看了PoolChunk源码,好多位操作,对这些位操作理解不到位,看起来很是吃力,不知道为什么要这么做,可能是性能更好 1:大小为2 的冥的数加1 怎么操作 size^1; 2: <=比较   m ...

  6. java全栈day05--ArrayList的基本功能

    在前面我们学习了数组,数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适用,因为数组的长度不可变.例如,要保存一个学校的学生,由于不停有新生来报道,同时也有学生毕业离开 ...

  7. C++11新标准:nullptr关键字

    一.nullptr的意义 1.NULL在C中的定义 #define NULL (void*)0 2.NULL在C++中的定义 #ifndef NULL #ifdef __cplusplus #defi ...

  8. Jquery 插件开发——citylinkage(省、市、县城市联动选择)

    第一部分:背景  开发源于需求,本次城市联动选择插件算是我写插件的一个特例吧,不是我目前工作需要些的,算是兴趣驱使吧.之前呢,一直想写这个插件,然后错过了一个写这个插件的机会(这个得回顾到很久以前了. ...

  9. Android proguard代码混淆

    为什么要代码混淆? Android的安装文件是apk格式.APK是AndroidPackage的缩写.是由android sdk编译的工程打包生成的安装程序文件. Apk其实是zip文件,但是后缀名被 ...

  10. Visual Studio 2017中如何创建安装打包项目

    从Visual Studio 2012开始,微软就不在环境中自动集成安装打包项目了,如果还想使用,需要手动下载安装,这里以在Visual Studio 2017上安装打包项目为例进行介绍,步骤如下: ...