Gitea的安裝和配置以及應用

Gitea的安裝和配置以及應用

一、安裝

1、創建數據庫和數據庫賬戶(pg)

su – postgres -c "psql" 
CREATE ROLE gitea WITH LOGIN PASSWORD 'gitea';
CREATE DATABASE giteadb WITH OWNER gitea TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';

2、下載gitea,給與可執行權限

wget -O gitea https://dl.gitea.com/gitea/1.23.6/gitea-1.23.6-linux-amd64
chmod +x gitea
cp gitea /usr/local/bin/gitea

3、創建系統用戶

adduser \--system \--shell /bin/bash \--gecos 'Git Version Control' \--group \--disabled-password \--home /home/git \git

4、創建相關目錄

mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea

5、創建服務Gitea

sudo vim /etc/systemd/system/gitea.service

[Unit]
Description=Gitea
After=postgresql.service[Service]
User=git
Group=git
Environment="GITEA_WORK_DIR=/var/lib/gitea"
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always[Install]
WantedBy=multi-user.target

6、激活gitea 并將它作為系統自啟動服務

sudo systemctl enable gitea
sudo systemctl start gitea

7、初始化

訪問域名,完成Gitea的初始化

http://192.168.1.215:3000/

在這里插入圖片描述

在這里插入圖片描述

第一個注冊的賬號是管理員賬號。

8、修改配置文件

配置文件在/etc/gitea/app.ini

#service 下增加這一行: 不允許匿名的push
ENABLE_ANONYMOUS_GIT_PUSH = FALSE
# 修改log模式為file
MODE = file

9、windows下git安裝

https://git-scm.com/downloads/win

二、小團隊最佳實踐

以下由deepseek生成。

1、Fork + Pull Request VS 直接Push到主倉庫

小團隊10人左右內部通過gitea構建git服務器,有兩種使用方式:1、每個人從主倉庫fork到個人倉庫下,然后修改代碼后push到自己的個人倉庫,再通過pull request提交的主倉庫。 2、直接從主倉庫pull代碼,修改后直接push到主倉庫。 哪種方式比較好?

對于10人左右的小團隊使用Gitea構建Git服務器,兩種協作方式的優劣對比如下,最終建議需結合團隊具體情況:### **方式1:Fork + Pull Request 模式**
**優點:**
1. **代碼審查嚴格**:所有變更必須通過PR合并,便于團隊討論和代碼質量把控。
2. **權限控制靈活**:主倉庫可限制直接Push,僅維護者能合并PR,適合開源項目或嚴格權限管理的場景。
3. **隔離性高**:個人開發在獨立倉庫完成,避免直接污染主分支。
4. **歷史清晰**:PR記錄可追溯代碼修改意圖和討論過程。**缺點:**
1. **流程復雜**:需頻繁同步主倉庫變更(需手動添加Upstream遠程并拉取)。
2. **效率較低**:小修改也需走PR流程,可能影響快速迭代。### **方式2:直接Push到主倉庫**
**優點:**
1. **簡單高效**:適合高頻協作的小團隊,快速完成代碼共享。
2. **減少操作成本**:無需維護Fork倉庫,同步代碼更直接。**缺點:**
1. **風險較高**:誤操作可能導致主分支損壞(需通過分支保護規則緩解)。
2. **缺乏強制審查**:依賴成員自覺,代碼質量可能參差不齊。---### **綜合建議:**
1. **推薦方式2(直接Push)+ 分支保護**  - **適用場景**:團隊成員熟悉Git、信任度高、追求效率。  - **優化措施**:  - 主倉庫設置 `main`/`master` 分支為**保護分支**,僅允許通過PR合并(需Gitea權限支持)。  - 日常開發在**非保護分支**(如 `dev` 或 `feature-xxx`)直接Push,定期通過PR合并到主分支。  - 結合Code Review:即使直接Push,也要求團隊成員互相審查后再合并。2. **方式1(Fork+PR)的適用場景**  - 團隊中有新人需要學習Git工作流。  - 項目為開源或需要嚴格權限隔離(如部分成員僅限只讀)。  ### **補充最佳實踐**
- **分支策略**:無論哪種方式,建議采用 `main` + `feature` 分支,避免直接在主分支開發。  
- **自動化工具**:通過Gitea的Webhook觸發CI/CD,確保PR或Push后自動運行測試。  
- **文檔規范**:明確團隊協作規則,例如提交信息格式、PR描述模板等。最終,**方式2(直接Push + 分支保護)更適合小團隊高效協作**,同時通過技術約束(保護分支)和流程規范(非強制Code Review)平衡靈活性與安全性。

2、gitea的核心概念

在 Gitea 中,**組織(Organization)** 是一個用于集中管理多個倉庫和團隊成員的概念,類似于 GitHub/GitLab 中的組織或群組。它適用于團隊協作,可以更靈活地管理權限、倉庫和成員。以下是 Gitea 中組織的核心概念和功能:---### **1. 組織的作用**
- **團隊協作**:將多個用戶(成員)歸集到一個組織下,統一管理倉庫和權限。
- **權限隔離**:組織可以擁有獨立的倉庫、團隊(Teams)和訪問控制,與個人用戶(User)的倉庫分離。
- **資源歸類**:適用于公司、開源項目、部門等場景,所有相關倉庫集中在組織名下(如 `org-name/repo-name`)。---### **2. 組織 vs 個人用戶**
| **特性**       | **組織(Organization)**       | **個人用戶(User)**          |
|----------------|-------------------------------|-----------------------------|
| **所有者**     | 由用戶創建和管理              | 個人賬戶                    |
| **倉庫歸屬**   | 屬于組織(而非個人)          | 屬于個人                    |
| **權限管理**   | 通過**團隊(Teams)**分層控制 | 直接管理個人倉庫的協作者    |
| **用途**       | 團隊協作、公司項目            | 個人開發                    |---### **3. 組織的核心功能**
#### **(1)團隊(Teams)**
- 組織內可以創建多個團隊(如 `Developers`、`Admins`),每個團隊可以分配不同的權限(讀、寫、管理員等)。
- 成員可以屬于多個團隊,權限疊加(最高權限優先)。#### **(2)倉庫管理**
- 組織可以擁有多個倉庫,倉庫的訪問權限由團隊控制。
- 示例:  - `Admins` 團隊:對全部倉庫有管理員權限。  - `Developers` 團隊:只能推送(Push)到指定倉庫。  #### **(3)成員角色**
- **所有者(Owner)**:組織的最高管理者,可修改組織設置、刪除組織。
- **成員(Member)**:普通成員,權限由所屬團隊決定。---### **4. 典型使用場景**
#### **場景1:公司內部開發**
- 創建一個組織(如 `my-company`),下設團隊:  - `backend-team`:擁有后端倉庫的寫入權限。  - `frontend-team`:擁有前端倉庫的寫入權限。  - `qa-team`:僅限讀取倉庫。  #### **場景2:開源項目**
- 組織名(如 `awesome-project`)作為項目官方命名空間。  
- 通過團隊控制核心開發者(Maintainers)和貢獻者(Contributors)的權限。---### **5. 如何創建和管理組織?**
1. **創建組織**:  - 登錄 Gitea → 點擊右上角 `+` → 選擇 `New Organization`。  
2. **添加成員**:  - 進入組織 → `Members` → 邀請用戶。  
3. **創建團隊**:  - 進入組織 → `Teams` → 定義權限(Read、Write、Admin)。  
4. **分配倉庫**:  - 在團隊設置中關聯倉庫,或直接在倉庫設置中授權團隊。---### **6. 最佳實踐**
- **最小權限原則**:按需分配團隊權限(如避免直接給全員 `Admin`)。  
- **倉庫命名規范**:如 `org-name/project-name` 提高辨識度。  
- **結合分支保護**:在組織倉庫中設置保護分支,確保代碼安全。---### **總結**
Gitea 的**組織**是團隊協作的核心單元,通過**團隊(Teams)**實現靈活的權限管理,適合多人協作的項目。對于10人左右的小團隊,建議:  
1. 創建一個組織集中管理所有倉庫。  
2. 根據角色劃分團隊(如 `Devs`、`Leads`),而非直接賦予個人權限。  
3. 結合分支保護 + PR 流程(即使直接Push到非保護分支)。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/77411.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/77411.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/77411.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何更改OCP與metadb集群的連接方式 —— OceanBase運維管理

背景 許多用戶都會借助OCP平臺來進行OceanBase集群的運維與監控,且因為考慮單節點的OCP部署,在遇故障時可能會短時間出現無法管控 OceanBase集群,多數用戶傾向于采用多節點方式來部署OCP,即 OCP的 metadb集群也是三節點的集群部署…

SpringDoc【使用詳解】

SpringDoc使用詳解 一、何為SpringDoc二、概念解釋三、SpringDoc使用2.1簡單集成2.2 配置SpringDoc2.2.1 yml方式配置2.2.2配置文檔信息 2.3配置文檔分組2.4使用注解2.4.1 Tag2.4.2 Operation2.4.3 Schema2.4.4 NotNull2.4.5 Parameter2.4.6 Parameters2.4.7 ApiResponses 和Ap…

PHP 阿里云oss 使用指南

1.介紹 把圖片放到阿里云上的空間上,可以使用cdn加速。 可以在程序里直接調用 要使用阿里云 oss sdk ,請先到阿里云下載 或用 copmposer 安裝 相關鏈接: 安裝OSS PHP SDK_對象存儲(OSS)-阿里云幫助中心 composer require aliyuncs/oss…

【AI提示詞】常青筆記生成器

提示說明 生成適用于多個場景和領域的常青筆記,滿足“常青筆記”的核心特性和結構。 提示詞 # 角色: 常青筆記生成器## 角色簡介: - 作者: xxx - 版本號: 1.0 - 更新時間: xxx - 語言: 中文## 定位: - 🎯 生成適用于多個場景和領域的常青筆記&#x…

在 Lua 中,`for` 和 `while` 是兩種核心的循環結構的詳細用法

在 Lua 中,for 和 while 是兩種核心的循環結構,用于實現重復執行邏輯。以下是它們的詳細用法、進階技巧及注意事項: 在 Lua 中,for 和 while 是兩種核心的循環結構的詳細用法—目錄 一、for 循環1. 數值 for 循環基礎語法&#xf…

A2DP(Advanced Audio Distribution Profile)是藍牙協議棧中用于音頻傳輸的一個標準化協議

A2DP(Advanced Audio Distribution Profile)是藍牙協議棧中用于音頻傳輸的一個標準化協議,主要用于高質量音頻流的無線傳輸。以下是A2DP協議的詳細信息: 定義 A2DP協議允許音源設備(Source,簡稱SRC&#…

STM32_USB

概述 本文是使用HAL庫的USB驅動 因為官方cubeMX生成的hal庫做組合設備時過于繁瑣 所以這里使用某大神的插件,可以集成在cubeMX里自動生成組合設備 有小bug會覆蓋生成文件里自己寫的內容,所以生成一次后注意保存 插件安裝 下載地址 https://github.com/alambe94/I-CUBE-USBD-Com…

【文獻閱讀】Capabilities of Gemini Models in Medicine

? Google DeepMind Google Research 發表于 2024-04-29 相關鏈接: 數據集:https://huggingface.co/datasets/katielink/med-gemini-medqa-relabeled 注:長EHR是長的電子健康記錄(Electronic Health Record) 未開…

網絡安全小知識課堂(最終完結版)

網絡安全入門 :從 “小白” 到 “守護者” 的蛻變之旅 寫在完結之際 歷經 13 篇的深度探索,我們從 DDoS 攻擊的 “流量洪水” 一路闖關到 HTTPS 的 “加密堡壘”,揭開了網絡安全世界的層層面紗。感謝每一位讀者的陪伴與互動,你們…

Php laravel 留言板 curd 實戰

1. 項目創建 首先我們用composer創建項目 , composer會根據當前的php版本 幫我們選擇支持的最高版本 composer create-project --prefer-dist laravel/laravel myblog laravel新版本比較激進 ,需要最低 php7 支持 2. 項目配置 數據庫配置 &#xff0c…

HTTP 壓力測試工具autocannon(AI)

簡介 autocannon 是一款基于 Node.js 的高性能 HTTP 壓力測試工具,適用于評估 Web 服務的并發處理能力和性能瓶頸。 一、工具特點 高性能?:利用 Node.js 異步非阻塞機制模擬高并發請求?。?實時監控?:測試過程中動態展示請求統計和性能…

LVM 擴容詳解

目錄 一、LVM擴容 1. 查看磁盤分區情況: 2. 查看pv、vg、lv 情況 3. 將新硬盤分區初始化 4. 將初始化后的分區添加到VG中 5. 查看邏輯卷的設備路徑 6. VG分配給lv 二、擴展文件系統 1.確認文件系統類型 三、檢驗 一、LVM擴容 1. 查看磁盤分區情況: …

每日一題(小白)數組娛樂篇21

由于題意可知我們是要將對應的數字轉換為英文,我們要考慮兩點一個是進制的轉換,也就是類似于我們的十進制一到9就多一位,這里的進制就是Z進制也就是27進制一旦到26下一位則進位;另一方面要考慮數字的轉換也就是1~26對應A~Z。解決上…

python爬蟲:喜馬拉雅案例(破解sign值)

聲明: 本文章中所有內容僅供學習交流使用,不用于其他任何目的,嚴禁用于商業用途和非法用途,否則由此產生的一切后果均與作者無關! 根據上一篇文章,我們破解了本網站的,手機號和密碼驗證&#x…

深入探討:Spring 如何接入 DeepSeek?

?在當今數字化浪潮中,人工智能(AI)技術的迅猛發展深刻地改變著各個領域的技術格局。Java 作為一種廣泛應用于企業級開發的編程語言,其生態系統也在不斷演進以適應 AI 技術的融入。Spring 框架,作為 Java 生態中的中流…

VSCode運行,各類操作緩慢,如何清理

VSCode寫代碼,隨著項目逐步進展,代碼量在增加,依賴的第三方頭文件也在增加, 先是發現代碼提示的速度變慢, 后來格式化代碼速度太慢 然后c/c代碼的語法檢查有時候壓根就失敗,來個錯誤提示 還有source contro…

Elasticsearch:加快 HNSW 圖的合并速度

作者:來自 Elastic Thomas Veasey 及 Mayya Sharipova 過去,我們曾討論過搜索多個 HNSW 圖時所面臨的一些挑戰,以及我們是如何緩解這些問題的。當時,我們也提到了一些計劃中的改進措施。本文正是這項工作的成果匯總。 你可能會問…

人事|人事管理系統|基于Springboot+vue的人事管理系統設計與實現(源碼+數據庫+文檔)

人事管理系統 目錄 基于Springboot的人事管理系統設計與實現 一、前言 二、系統功能設計 三、系統實現 1、管理員登錄 2、員工管理 3、公告信息管理 4、公告類型管理 5、培訓管理 6、培訓類型管理 四、數據庫設計 1、實體ER圖 五、核心代碼 六、論文參考 七、最新…

2.4GHz射頻前端噪聲系數優化架構

2.4GHz射頻前端電路架構由信號處理鏈路、硬件模塊及性能規范構成,其系統組成與參數要求如下: 一、信號發射鏈路? 數字基帶信號通過DAC轉換為模擬信號? 調制電路將信號加載至本地振蕩器生成的2.4GHz載波? 功率放大器將信號強度提升至20-25dBm范圍? …

開源 LLM 應用開發平臺 Dify 全棧部署指南(Docker Compose 方案)

開源 LLM 應用開發平臺 Dify 全棧部署指南(Docker Compose 方案) 一、部署環境要求與前置檢查 1.1 硬件最低配置 組件要求CPU雙核及以上內存4GB 及以上磁盤空間20GB 可用空間 1.2 系統兼容性驗證 ? 官方支持系統: Ubuntu 20.04/22.04 L…