Windows使用gitea搭建Git服务器

Git是什么就不多赘述,原先个人项目就是直接托管到github上,相对来说稳定又比较方便。   现在公司原有代码管理方式相对比较局限,所以考虑再搭建一个单独的Git服务器来处理。看了挺多Git服务器的选型,一开始考虑的是gitlab,但是我们开发团队不大,有基础的版本管理功能就能满足需求,所以选用了轻量级的gitea。   当然了,gitlab对服务器要求比较高才是决定性因素。  

 

---

 

## 基础环境

 

### 基础环境准备

 

我用的是 windows server 的服务器来部署,所以本文全文都只讲述window上的搭建,如果有其他系统的需要,可以自行参照官方文档  

 

系统要求:如果用于团队项目,建议使用 2 核 CPU 及 1GB 内存   > 官方文档说是一个廉价的树莓派也能支持运行,但是做长期服务的话,还是用稍微好一点点的配置比较稳定   > 毕竟,能用,和好用,是两码事  

 

数据库支持:所有下载均包括 SQLite, MySQL 和 PostgreSQL 的支持,同时所有资源均已嵌入到可执行程序中   > SQLite是最方便的,因为不用再单独安装软件,直接启用就可以,但是有看到一些文章说是用量比较大以后性能堪忧,emmm,长远考虑还是不图这一下方便了   > PostgreSQL,没了解过,不予置评   > 综上,选用了mysql  

 

gitbash:用来做Git服务器的,这个应该是必须的基础环境了文档没看到gitea有没有内置,但是装一个肯定是没错的   > Git。。每台电脑都有装,但是我平时用的话很少直接用命令行操作,vs和vscode内建的简单git操作对我来说就够了  

 

[gitea二进制文件下载地址](https://dl.gitea.io/gitea)   [mysql下载地址](https://dev.mysql.com/downloads/mysql/)(直接就放了官方网址了,我电脑上有就直接用了5.7.17的包)   [Git下载地址](https://git-scm.com/downloads)  

 

### 基础环境安装

 

全部直接下一步,有特别需要的话自行调整即可   先后顺序也不重要,都有装就行   此处略   > 当然了,mysql的root账号和密码是要记住的)手动狗头  

 

## 起航

 

### 注册为Windows服务

 

软件本体直接双击exe运行的话,会用命令行窗口的形式运行,比较容易出现误触和误关闭的情况,所以建议用官方提供的方法换成Windows服务的形式来运行   需要发布到互联网并在外网访问的话,需要打开防火墙的3000端口(默认是3000端口,端口配置可再配置文件里自行更改)  

 

以下为官方文档原文:   要注册为Windows服务,首先以Administrator身份运行 ```cmd```,然后执行以下命令:  

 

    sc create gitea start= auto binPath= "\"C:\gitea\gitea.exe\" web --config \"C:\gitea\custom\conf\app.ini\""

 

 别忘了将 ```C:\gitea``` 替换成你的 Gitea 安装目录。   之后在控制面板打开 ```Windows Services```,搜索 ```gitea```,右键选择 ```Run```。在浏览器打开 ```http://localhost:3000``` 就可以访问了。(如果你修改了端口,请访问对应的端口,3000是默认端口)。  

 

从Windows服务中删除   以Administrator身份运行 ```cmd```,然后执行以下命令:  

 

    sc delete gitea

 

### 平台初始化

 

把服务器的管理员名字或者其他有权限的用户名填进去,mysql的账号密码填进去,基础信息设置一下就好了,这些都能在配置文件里再更改,问题不大   填完以后稍微等一下,后台进度走完以后就可以   > 要注意的是涉及到地址的,都要填其他电脑访问服务器的地址,有域名的话最好填域名,没有的话,简单的把localhost换成IP也可以,保证都能访问就行   > 这里填的配置文件里也能改,不确定或者先调试的话,可以先用localhost代替  

 

仓库根目录授权   > 涉及到web发布,建议将储存仓库的根目录授予everyone完全控制权限,这样可以解决很多奇奇怪怪的问题  

 

### 创建项目

 

直接点网页右上角加号,然后创建新项目即可,输入信息以后就可以直接用惹   有直接提供一些```.gitignore```模板和授权许可模板,直接选用即可   其他部分就是正常的git操作流程   需要多人♂协作的话,在```仓库设置 - 管理协作者```里搜索用户名添加到名单里并授权即可  

 

## 避坑指南

 

上面的步骤应该都是很顺利的,一直到克隆项目到本地都是很正常的   但是在push项目到服务器上的时候,emmm,容易出问题,比如

 

    error: RPC failed; result=22, HTTP code = 401     fatal: The remote end hung up unexpectedly     fatal: The remote end hung up unexpectedly

 

这就是我本人没错了,从Stack Overflow查到同样的问题,问题定位到Windows凭据出错   后面排查发现可能是因为我电脑之前用过其他git服务器,所以凭据有点错乱,把git凭据全部删掉以后重新push,要输入凭据的时候输入正确的用户名和密码,再尝试就可以正常推送了   修改Windows凭据的方法见参考资料  

 

## 参考资料

 

[Github项目地址](https://github.com/go-gitea/gitea)   [官方中文文档](https://docs.gitea.io/zh-cn/)   [Git - error: RPC failed; result=22, HTTP code = 401 fatal: The remote end hung up unexpectedly - Stack Overflow](https://*.com/questions/12544142/git-error-rpc-failed-result-22-http-code-401-fatal-the-remote-end-hung-u)   [访问凭据管理器](https://support.microsoft.com/zh-cn/help/4026814/windows-accessing-credential-manager)   [gitea二进制文件下载地址](https://dl.gitea.io/gitea)   [mysql下载地址](https://dev.mysql.com/downloads/mysql/)   [Git下载地址](https://git-scm.com/downloads)  
上一篇:从零开始的Devops-Git Server


下一篇:自建Git服务器 - 创建属于你自己的代码仓库