Windows使用gitea搭建Git服務器


本文使用markdown編寫,首發於我的知乎專欄
 
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://stackoverflow.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)  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM