linux中央服务器,如何在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 "12345678@qq.com"

创建后你的用户主目录下面就有个.ssh文件夹,里面的id.rsa就是私钥,id.rsa_pub就是公钥。公钥里面的内容待会要用到

2.git 服务器打开RSA验证

vim /etc/ssh/sshd_config

找到并去掉前面的#号

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile .ssh/authorized_keys

最后效果如图所示

82f2460e91e8

打开RSA验证

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 git@192.168.229.130:test.git #把ip换成你自己服务器的ip

方法二

git init

git remote add origin git@118.89.28.249:test.git #把ip换成你自己服务器的ip

2.推送远程服务器 (第一次加上-u参数)

git push -u origin master

结尾

通过上面的这些步骤其实就可以实现一个简易的git服务器了,是不是很简单呢?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526646.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux桌面发展方向,观点|Linux 桌面的发展之路!

Ken Starks 在 fossforce.com 网站上问 你们是如何优化 Linux 的?,我很高兴他问了这个问题,因为我有话要说!对我来说,Linux 桌面就是一连串的承诺,但是这些承诺却总是无法兑现。它在每个版本发布后都会说“…

linux常见基础服务,常用的linux命令的基本使用(一)

序号命令对应英文作用01lslist查看当前文件夹下的内容02pwdprint name of of current/working directory查看当前所在文件夹03cd[目录名]change directory切换文件夹04touch[目录名]touch如果文件不存在,新建文件05mkdir[目录名]make directory创建目录06rm[文件名]…

树莓派怎么学linux,树莓派使用入门用树莓派学 Linux

树莓派使用入门用树莓派学 Linux我们的《树莓派使用入门》的第四篇文章将进入到 Linux 命令行。在本系列的 第三篇文章 中开始了我们的树莓派探索之旅,我分享了如何安装 Raspbian,它是树莓派的官方 Linux 版本。现在,你已经安装好了 Raspbian…

全国计算机二级C语言过关要求,计算机二级考试c语言过关经验

计算机二级考试c语言过关经验考试要求考生在规定的时间内按指定的方式解答精心选定的题目或按主办方的要求完成一定的实际操作的任务,并由主办方评定其结果,从而为主办方提供考生某方面的知识或技能状况的信息。下面是小编整理的关于计算机二级考试c语言…

c语言链表贪吃蛇脚本之家,C++控制台实现贪吃蛇游戏

本文实例为大家分享了C实现贪吃蛇游戏的具体代码,供大家参考,具体内容如下刚学完了C语言,便尝试的写了贪吃蛇的代码,但是效果不佳,很多的bug,所以,这个学了C,便重新的写了这个小游戏…

win8能开发android的sdk么,Win8下Android SDK安装与环境变量配置教程

Win8下Android SDK的安装与环境变量配置,具体内容如下1、下载Android SDK,点击安装,直接默认路径即可!进入该网站后往下拉就能找到sdk下载的位置,选择图中红圈的程序进行下载2、安装过程比较简单,按照平时安…

Android公共jar,使用JitPack管理Android项目中公共模块库

随着项目的功能越来越多,代码和模块维护也越来越复杂,为了减少主项目的代码量,一般都会将一些公共使用的类或者功能模块抽离出来,与主项目解耦分离,当主项目中需要使用的时候,直接进行引用即可。现在Androi…

mac android 手机连接打印机,为什么苹果电脑连接打印机打不出来怎么办

1. 为什么苹果笔记本连接打印机打印不了1、您的 Wi-Fi 或本地网络上的 AirPrint 打印机。2、临近的 Wi-Fi 打印机或位于您本地网络且支持 Bonjour 的基于有线网络的打印机。3、连接到家庭网络中 Time Capsule 或 AirPort 基站的 USB 端口的打印机。4、与家庭网络中的其他 Mac 共…

华为正式官宣鸿蒙OS,华为正式官宣,鸿蒙OS 2.0系统即将问世,Mate 40有望首发

由于华为5G技能取得了突破性的领先,美国对其采取了实体清单操持。意图干涉华为的发展速率,但实际上对于华为影响最大的却是软件方面的“断供”。在美国发布实体清单短短数月之后,谷歌公布停止对于华为手机系统的GMS服务授权。间接导致了华为手…

笔记本html连接电视机,详细教您笔记本连接电视

很多时候我们想要通过电视机来在线看电影,而苦于笔记本的屏幕尺寸太小了,心想着要是笔记本能连接上电视该有多好。其实现在的电视提供了很多连接电脑的功能,简单操作一下就可以实现,那笔记本怎么连接电视呢?下面一起来…

计算机网络静态路由大作业 3地互联,计算机网络-静态路由配置

计算机网络综合实习三:路由器基本配置一、实验目的通过实验掌握利用路由器实现网络互联的一般方法,掌握基本的路由器配置命令。二、实验原理不同的计算机网络在技术和工作方式上的差异,是需要进行网络互联的基本原因。在现实的应用中&#xf…

台式机没有显示计算机图标,为什么台式电脑没有喇叭图标

使用电脑的过程中,有时候会遇到电脑的音量图标突然不见的情况,怎么办?下面是学习啦小编为大家整理的关于台式电脑没声音图标的相关资料,希望对您有所帮助!台式电脑没声音图标的解决方法首先点击“开始”按钮,找到“控制面板”选项…

计算机培训开场语,辅导班家长会主持词开场白

【仅供学习参考,切勿通篇使用!】等孩子长大了,再想好好教育就没有机会了。这时候前人的方法和经验就显得尤其重要了下面是由76范文网小编为大家整理的“辅导班家长会主持词开场白”,仅供参考,欢迎大家阅读。辅导班家长…

计算机语言由低到高就被分为了什么阶段,2004年4月高等教育自学考试认知心理试题...

第一部分 选择题 (共30分)一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的四个选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.“望梅止渴”从反射论的观点来分析,是(…

ROCKOUT软件测试工程师,具透丨这才是让 iMessage 变得好玩有用的原因:iMessage App Store 详解...

关于栏目苹果、谷歌每年一次大更新的新系统都值得关注,我们始终不建议普通用户提前尝鲜稳定性不佳的测试版,但我们理解想要尝鲜的心情,于是有了「具透」这个栏目。「具透」会挖掘、详解新系统的各个功能细节,并会以长期更新形式&a…

计算机不能辨别汉字wifi,Win10系统连接不上被隐藏的中文Wifi的解决方法

Window10正式版系统 添加了不少新功能,给用户带来了不错的体验。不过,win10系统也有一些不足的地方,比如用户反馈自己的电脑总是无法连接隐身的中文Wifi,这该怎么办呢?接下来,小编就为大家分享下具体解决方…

联想服务器硬盘启动设置方法,教你联想台式机bios设定硬盘启动方法

现在好多家庭的台式电脑使用的都是联想的,不少朋友想用u盘装系统,但是不知道联想台式机bios设定硬盘启动的方式,别着急,今天小编就来分享联想台式机bios设定硬盘启动的方式。当手机出现死机或关机等故障造成手机能够开启平台的之后…

项目七samba服务器,Centos 7 配置Samba服务器

Centos 7配置Samba服务器1、Centos 7版本,内核: Linux 3.10.0-514.el7.x86_64[roottommy /]# hostnamectl #查看版本号Operating System: CentOS Linux 7 (Core)CPE OS Name: cpe:/o:centos:centos:7Kernel: Linux 3.10.0-514.el7.x86_64Architecture: x…

服务器nasjava文件共享,办公室文件共享之如何搭建共享服务器或文件共享服务器nas?...

当前,企事业单位局域网中,经常会有一些文件需要共享给局域网用户访问。而文件共享的实现,一方面可以借助于Windows Server 文件服务器来实现;另一方面也可以借助NAS存储来实现。由于采用Windows文件服务器的设置比较普遍&#xff…

6s有时有信号 有时无服务器,揭秘:iPhone 6S 的没信号没网络维修故障分析

原标题:揭秘:iPhone 6S 的没信号没网络维修故障分析文/维修狮 (FIXHOME)手机不入网(没信号)是一个常见的多发故障(占手机故障的40%以上),对于手机出现不入网(没信号)故障我们首先要区分是接收部份还是发射部份的原因造成的,搞清楚后才可“对症下药”。一…