登录  | 加入社区

黑狼游客您好!登录后享受更多精彩

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

查看: 567|回复: 0

对不起,我不会Git

[复制链接]

179

主题

179

帖子

0

现金

黑狼菜鸟

Rank: 1

积分
0
发表于 2019-2-21 02:12:47 | 显示全部楼层 |阅读模式 来自 江苏徐州
作者 | 温叶
编辑 | 小胡
泉源 | segmentfault

如安在Linux上搭建一个Git中心堆栈

媒介:本教程只面向那些个人开辟者,想要本身在linux上搭建一个git中心堆栈用来上传发布本身的项目。但是对于团队来说大概有更高的要求,可以利用gitlab搭建一个可视化的雷同github的版本管理体系
测试情况

我利用的linux版本是Centos7,假如各人利用的是其他发行版本,步调也都是一样的
安装Git

Centos上利用的是yum的安装方式
yum install -y git
创建一个Git用户来运行Git服务

1.创建git用户
adduser git
2.设置用户暗码
passwd git
3.克制shell登录
vim /etc/passwd
找到git用户的那一行并举行修改

git:x:1001:1001:,,,:/home/git:/bin/bash
修改为
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

如许一来刚创建git用户可以正常通过ssh利用git,但是无法登录shell,会更加的安全
创建客户端登录证书

1.客户端创建私钥和公钥
ssh-keygen -t rsa -C "[email protected]"
创建后你的用户主目次下面就有个.ssh文件夹,内里的id.rsa就是私钥,id.rsa_pub就是公钥。公钥内里的内容待会要用到
2.git 服务器打开RSA验证
vim /etc/ssh/sshd_config
找到并去掉前面的#号
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

末了结果如图所示 uHnOHrAs8onIIl6N.jpg
clipboard.png
3.在git用户的主目次里新建.ssh文件夹,然后在文件夹内里新建文件authorized_keys
cd /home/git
mkdir .ssh
cd .ssh
vim authorized_keys

4.将客户端的id.rsa_pub公钥写进文件authorized_keys,一行一个。添加了这个以后你毗连中心堆栈就不必要输入暗码了,直接利用公钥和私钥的验证方式
创建git中心堆栈

1.进入git用户主目次
cd /home/git
2.创建一个裸堆栈 (一样平常以.git末端)
git init --bare test.git 
以test.git为例子,固然你可以叫恣意名字

裸堆栈是没有工作区的,纯粹为了共享
3.修改堆栈用户属主
chown -R git:git test.git
利用git hook

中心堆栈实在只是一个中介,假如你想要把中心堆栈的代码关联到你域名挂载下的文件夹时间,就必要利用到git的钩子来实现,当客户端提交接码到中心堆栈,中心堆栈能将代码也推送到别的的一个文件夹下面
1.在服务器初始化一个当地堆栈
这个堆栈就是你假造主机指定的文件夹,也就是你输入域名后会访问到的谁人文件夹
cd /var/www #进入你假造主机的挂载目次
git init #初始化git
git remote add origin /home/git/test.git #添加长途堆栈到隔壁的中心堆栈(风趣)

chown -R git:git /var/www #修改服务器当地堆栈的用户属组
2.在中心堆栈中设置钩子
进入长途堆栈的钩子目次
cd /home/git/test.git/hooks
新建一个文件post-receive
vim post-receive
编写shell脚本
#!/bin/sh
unset GIT_DIR
DeployPath=/var/www #这里的目次是你本身假造主机的目次
cd $DeployPath
git add . -A && git stash
git pull origin master
固然你也可以视环境而定,将这个脚本编写得更增强大

给文件post-receive添加可实行权限
chmod +x post-receive
客户端长途git服务器

这应该也是各人最等待的步调了,实现当地提交接码上服务器,通过钩子实现项目标主动摆设
实在到了这一步,就和你从前利用git上传代码到github上面没有什么区别了

1.克隆中心堆栈
方法一
git clone [email protected]:test.git #把ip换成你本身服务器的ip
方法二
git init
git remote add origin [email protected]:test.git #把ip换成你本身服务器的ip

2.推送长途服务器 (第一次加上-u参数)
git push -u origin master
末端

通过上面的这些步调实在就可以实现一个浅易的git服务器了,是不是很简朴呢?
LWTgg1vKR9yiEohK.jpg 前端指南

点击关注后开启前端新生活
LGGC8ZBHjC8J8L98.jpg




上一篇:zabbix-3.4.1_snmptrap设置指南
下一篇:Docker入门(二)在docker利用MongoDB
您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

 

QQ|申请友链|小黑屋|手机版|Hlshell Inc. ( 豫ICP备16002110号-5 )

GMT+8, 2024-5-3 10:34 , Processed in 0.063781 second(s), 47 queries .

HLShell有权修改版权声明内容,如有任何爭議,HLShell將保留最終決定權!

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表