怎么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服务器的主要内容,如果未能解决你的问题,请参考以下文章