Git服务器搭建 --- Linux CentOS 7.3

心血来潮,突然想到以前和老师学习的时候使用的版本管理是SVN,那会只要本地提交到SVN服务器,就自动同步到网站根目录,达到了提交了代码,就能看到远程网站的效果。

所以才有了这篇文章,话不多说,开始教程。


简介

Git 是一个开源分布式版本管理系统,可以有效的,方便的管理大小项目版本问题,由Linux内核开发者Linus Torvalds最初开发的。

据维基百科所说:git最为出色的就是它的合并跟踪(merge tracing)能力


安装命令

教程中使用的是 Linux CentOS 7.3 的版本。因为系统有自带git,这里不写安装教程。如果觉得版本低,可以重装。下面是安装命令:

yum install -y git


添加用户

添加一个Git的用户,用来运行与管理 Git库。命令如下:

useradd git -g www (后面要做钩子,假设网站根目录的用户组是www)


创建 Git仓库

为方便管理,创建一个目录存放所有仓库,命令如下:

//创建管理目录
cd /home
mkdir git

创建第一个仓库,命令如下:

cd git
git init --bare learngit.git  // --bare 意思就是创建一个裸库
//成功创建会提示:Initialized empty Git repository in /home/git/learngit.git/

chown -R git:www git   //返回home目录,变更用户组

到这里,Git服务器基本搭建成功,接下是添加秘钥、安全问题,设置钩子同步到网站根目录的过程,以及首次 git commit 可能会出现的问题。


客户端生成秘钥

该秘钥用于客户端使用 ssh连接 Git服务器的时候,可以保证不用输入密码。否则客户端每次ssh连接 Git服务器都要输入密码。执行如下命令:

ssh-keygen -t -C '邮箱'

该命令产生的界面

如果没有特殊需求,可以一直按回车。最后两行的意思分别是私钥地址,公钥地址。我们要使用的就是公钥,私钥自己保存就行,不要泄露出去。


创建authorized_keys文件

回到 Git服务器,假设你的git目录下有 .ssh目录 和 authorized_keys文件,那么这里可以跳过,执行以下命令:

cd git
mkdir .ssh -m 700   // 创建目录 并给目录 7 权限,其它组设为0

//将客户端的公钥复制到下面这个文件,有多个用户,一行一个公钥,然后保存退出。
vim authorized_keys

chmod 600 .ssh/authorized_keys //修改权限

注:之后客户端ssh连接git就不用密码了,如果还要密码,那么可能上面的某一步做错了,按顺序一步步来,99%不会出错。


设置目录所属

递归处理git目录,及目录里的文件,子目录都变更所有者,所属用户组。避免出现git无法访问,导致客户端clone失败。执行以下命令:

cd /home

chown -R git:www git

禁止Git用户shell登录

为安全着想,禁止该用户shell登录,保持ssh能使用就行。执行以下命令:

vim /etc/passwd //直接修改用户保存的地方

找到git用户,并修改为图中所示一样:

修改后效果

之后,git用户就不能shell登录。


客户端 clone git仓库

到了这一步,我们来试试之前所做的一切有没有达到想要的结果。不过在这之前,先要下载 git客户端软件。官网下载就比较人性化了,只要打开这个官网下载页面,会自动识别操作系统多少位,然后自动添加下载。安装过程这里就不说了。

git官网下载:https://git-scm.com/download/win

打开安装好的git软件,执行命令如下:

git clone git@服务器IP:/home/git/learngit.git

执行这个命令之后,出现下面这个界面,成功一大半了,这些信息说的是,让你核对来自git公钥指纹,可以忽略。这里输入yes 按回车:

首次 clone 提示信息

之后出现这个界面,意思是说:已经永久的添加git服务器到信任列表,之后访问就没有这些提示。不过这里问题,就是git服务器22端口没有开启,导致无法clone成功,ssh连接需要开启22端口。还有一种可能就是没有权限访问git仓库,检查上面哪一步没执行顺序来执行命令。


输入yes 按回车之后的界面

clone 克隆仓库成功会出现下面的这个提示:


clone 成功的界面

后面一行警告是告诉你clone一个空的仓库,这里忽略它的提示。

我在e盘下执行的命令。所以在执行命令的路径可以找到clone的仓库:


本地仓库
注意事项:客户端首次 git commit 的时候,可能会出现以下问题

1)需要输入用户名和邮箱,作用是标识使用该本地仓库的作者是谁,在客户端 git软件 依次执行以下命令:

git config --global user.email '邮箱'
git config --global user.name '用户名'

2)本地仓库推送成功,但是服务器没有找到文件,这是因为裸库为了协同工作,是不会展示文件,不过可以设置 hook 展示文件,执行以下命令:

cd /home/git/hooks && vim post-receive

//添加下面命令   --work-tree 展示文件的目录,--git-dir 仓库目录
#!bin/bash
git --work-tree=/home/www --git-dir=/home/git/learngit.git checkout -f

//保存,执行下面代码
chmod +x post-receive


ps:展示文件的目录需要有写入的权限

本地重新推送然后在 /home/www 就可以看本地推送的文件了。

结语

至此,Git的搭建,全部完成。
可能教程没那么美好,只有懂得教程中所使用的linux基本命令,基本就没什么问题。
如果教程中有什么错误,麻烦告知作者修改。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,458评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,030评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,879评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,278评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,296评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,019评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,633评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,541评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,068评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,181评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,318评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,991评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,670评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,183评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,302评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,655评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,327评论 2 358

推荐阅读更多精彩内容