怎么clone自己搭建的git服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么clone自己搭建的git服务器相关的知识,希望对你有一定的参考价值。

参考技术A

你好!

搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。


假设你已经有sudo权限的用户账号,下面,正式开始安装。


第一步,安装git:


$ sudo apt-get install git

第二步,创建一个git用户,用来运行git服务:


$ sudo adduser git

第三步,创建证书登录:


收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。


第四步,初始化Git仓库:


先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:


$ sudo git init --bare sample.git

Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:


$ sudo chown -R git:git sample.git

第五步,禁用shell登录:


出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:


git:x:1001:1001:,,,:/home/git:/bin/bash

改为:


git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。


第六步,克隆远程仓库:


现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:


$ git clone git@server:/srv/sample.git

Cloning into 'sample'...

warning: You appear to have cloned an empty repository.


这些都是小鸟云的工程师告诉我的,建议你可以试试小鸟云

使用GOGS搭建自己的Git托管

大家在开发中一般使用的git服务都是公司搭建好的,或者就是直接用gayhub提供的免费的仓库

如果想搭建一个自己的仓库的话怎么弄,这里给大家安利一款开箱即用的git托管服务:gogs。

gogs是基于Golang编写的,占用的资源非常的低,你有个树莓派就能跑,而且搭建非常容易,接下来开始演示如何搭建。

操作环境:阿里云ECS服务器配置:单核2GB内存 ;操作系统: CentOs 7 x64

注:本文操作全部基于yum进行安装,其他操作系统可自行更换对应指令

第一步:安装git

命令 yum install git 

效果如图

技术图片

 

 技术图片

 

 第二步:下载gogs二进制文件

下载地址:https://gogs.io/docs/installation/install_from_binary

选择linux 64位的安装包,至于是下载zip还是tar根据自己的喜好,我这下载的tar

技术图片

 

命令: wget  gogs 文件地址

 

技术图片

 

 

也可以直接用浏览器下载下来再传到linux服务器上去,我就是这么干的,因为我发现在服务器上直接下载,网速快卡到它姥姥家去了

下载好之后,找一个自己喜欢的文件夹,把gogs的文件解压到那里,我这里演示直接放到了/home;

命令:

cd /home  切换目录到/home

tar -xvf gogs_0.11.91_linux_amd64.tar.gz   (解压gogs压缩包,注意压缩包名要用自己下载好的,别直接copy我的命令,偷懒一时爽,菊花火葬场)

技术图片

 

 解压完以后,会出现一个gogs文件夹,进入到里面,执行命令:   ./gogs web

gogs就启动了,并且监听了3000端口,此时你访问3000端口就可以看到页面

技术图片

 

 我的服务器已经对外开放了3000端口,直接用ip:3000访问,会出现gogs的第一次配置页面,但是我们先不要配置,因为现在是前台启动模式,只要你的shell一关gogs就关了,所以接下来我们配置

一下后台启动。

技术图片

 

第三步:配置后台运行

 我们在 gogs/scrpts/systemd 下找到gogs的服务文件,我这一步一步的进是为了方便读者阅读,正常装的时候可以一步到位

技术图片

 

 然后我们把这个服务文件放到 /etc/systemd/system下

但是在移动前,我们需要先对这个service文件更改一下,把里面的工作路径和执行命令改成正确的

WoringDirectory 是你gogs的目录,ExeStart是服务启动时会执行的命令,都换成你自己的路径,用户我用的root

不知道用哪个用户用root就对了老弟

技术图片

 然后把这个gogs.service 复制到/etc/systemd/system文件下

执行以下命令

systemctl enable gogs.service

systemctl start gogs

systemctl status gogs

出现下图说明你已经成功的安装好了gogs,并且配置好了守护进程,访问3000端口,会出现之前的页面

技术图片

 

 访问ip+端口3000进入设置页面,进行gogs的基础设置

gogs会把你的提交记录记录在数据库中,gogs支持很多数据库,MySql pgSQL.....,并且自带了SqlLite,如果你不想装其他数据库的直接用默认的sqlLite就行,亲民的要死

我这里用的是Mysql ,不知道linux下怎么安装mysql的可以参考我这篇文章:https://www.cnblogs.com/Tassdar/p/9583790.html

配置好数据库之后无脑下一步就可以了,安装好之后的页面是这样的

技术图片

 第四步:配置反向代理


直接通过ip+端口这宗方式访问也不是不行,就是看起来有点low B,所以作为一个专业的程序员,我们还是专业一点,配个域名

首先解析一个二级域名出来  gogs.xiaocui.site

然后安装nginx

命令:

yum install nginx

systemctl start nginx

systemctl status nginx

出现下图说明你已经ok了,如果还不行,自行百度。

技术图片

 

 

 进到 /etc/nginx 目录下修改nginx.conf ,配置反向代理

添加一个新的配置节点,或者添加一个新的配置文件都行,看你怎么喜欢怎么来

技术图片

 

配置完之后执行 nginx -t 检查配置文件,如果不是successful,按照报错内容和行号去检查问题

然后执行 nginx -s reload  重新加载配置文件

技术图片

 

最后访问域名,完美。

 技术图片

 

 

 

 

以上是关于怎么clone自己搭建的git服务器的主要内容,如果未能解决你的问题,请参考以下文章

git 远程仓库clone问题

gitlab ssh clone设置

怎么在阿里云上搭建git服务器

Git版本控制之ubuntu搭建Git服务器

使用GOGS搭建自己的Git托管

怎么在ubuntu创建git服务器