
- Git 入門
- Git - 主頁
- Git - 版本控制
- Git - 基本概念
- Git - 命令列
- Git - 安裝
- Git - 首次設定
- Git - 基本命令
- Git - 獲取幫助
- Git - 工具
- Git - 速查表
- Git - 術語
- Git 分支
- Git - 簡述分支
- Git - 建立新分支
- Git - 切換分支
- Git - 分支與合併
- Git - 合併衝突
- Git - 管理分支
- Git - 分支工作流程
- Git - 遠端分支
- Git - 跟蹤分支
- Git - 變基
- Git - 變基與合併
- Git - 合併提交
- Git 操作
- Git - 克隆操作
- Git - 打標籤操作
- Git - 別名操作
- Git - 提交操作
- Git - 暫存操作
- Git - 移動操作
- Git - 重新命名操作
- Git - 推送操作
- Git - 拉取操作
- Git - Fork 操作
- Git - 修補程式操作
- Git - 差異操作
- Git - 狀態操作
- Git - 日誌操作
- Git - HEAD 操作
- Git - origin master
- Git 撤銷
- Git - 撤銷更改
- Git - 檢出
- Git - 還原
- Git - 重置
- Git - 恢復操作
- Git - Rm
- Git - 切換操作
- Git - Cherry-pick
- Git - 修訂
- 伺服器上的 Git
- Git - 本地協議
- Git - 智慧 HTTP 協議
- Git - 啞 HTTP 協議
- Git - SSH 協議
- Git - Git 協議
- Git - 在伺服器上獲取 Git
- Git - 設定伺服器
- Git - 守護程序
- Git - GitWeb
- Git - GitLab
- Git - 第三方託管選項
- 分散式 Git
- Git - 分散式工作流程
- Git - 為專案做貢獻
- Git - 維護專案
- 自定義 Git
- Git - 配置
- Git - 鉤子
- Git - 屬性
- Git - Init
- Git - Commit
Git - 守護程序
Git 守護程序是一個簡單的 TCP 伺服器,它與 Git 捆綁在一起。它允許使用者使用 git 協議獲取和克隆倉庫。
為透過 Git 協議提供倉庫服務設定 Git 守護程序涉及考慮其未經身份驗證的特性。因此,它在您希望公開提供 Git 倉庫並僅提供只讀訪問許可權的場景中很有用。
Git 守護程序提供的所有資料在其網路內都是公開可訪問的。
關鍵特性
以下是 git 守護程序的一些關鍵特性
在防火牆外部部署時,將其使用限制在旨在公開顯示的專案上。
在防火牆內部,Git 守護程序可以為多個使用者或系統可訪問的專案提供只讀訪問許可權。
這包括持續整合或構建伺服器等場景。
與 SSH 不同,Git 守護程序訪問不需要每個使用者或系統單獨的 SSH 金鑰。
它速度快且消耗最少的系統資源,因為它不處理身份驗證或加密。
設定 Git 守護程序
以下步驟將設定並執行 Git 守護程序,以透過 Git 協議提供倉庫服務
安裝 Git 守護程序
Git 守護程序與 Git 捆綁在一起,因此如果您安裝了 Git,您就已經可以使用 Git 守護程序了。檢查 Git 是否已安裝
git --version
如果 Git 未安裝,請先安裝 Git。使用以下命令
Ubuntu/Debian
sudo apt install git
CentOS/Fedora
sudo yum install git
設定倉庫
倉庫需要初始化為裸倉庫,因為 git 守護程序主要用於服務而不是開發。
為 Git 守護程序啟用倉庫
您需要專門允許 Git 守護程序,以便它可以提供 Git 倉庫服務。為了實現這一點,在裸倉庫內建立一個名為git-daemon-export-ok的檔案。此檔案至關重要,因為它被標記為一個標誌,指示可以透過 Git 協議提供倉庫服務。
touch /path/to/repository.git/git-daemon-export-ok
注意:此檔案很重要,因為沒有它,倉庫將不會透過 Git 守護程序公開。
執行 Git 守護程序
使用以下命令呼叫 Git 守護程序
git daemon --reuseaddr --base-path=/path/to/repositories --export-all --verbose --enable=receive-pack
--reuseaddr - 它允許 git 守護程序重用相同的地址,而無需等待超時。
--base-path=/path/to/repositories - 它指定 Git 守護程序將從中提供倉庫服務的目錄。
--export-all - 在基本路徑下,所有倉庫都將匯出,即使它們沒有git-daemon-export-ok檔案。此命令應謹慎使用。
--verbose - 它啟用詳細輸出以進行除錯過程。
--enable=receive-pack - 它允許使用者推送到倉庫。出於各種安全原因,預設情況下它處於停用狀態。
透過 Git 守護程序訪問倉庫
由於守護程序正在執行,您可以使用 git 協議克隆或獲取倉庫。請檢視一個示例
git clone git://your_server_ip_or_hostname/repository.git
Git 守護程序的優勢
以下是 Git 守護程序的一些優勢
無需身份驗證 - 它非常適合公共倉庫,您不需要使用者特定的訪問控制。
速度 - 由於 Git 協議輕量級且針對性能進行了最佳化,因此它比 SSH 和 HTTP 快。
易於設定 - 它的設定簡單易於配置和執行。
Git 守護程序的侷限性
以下是 Git 守護程序的一些侷限性
無需身份驗證 - 由於這是一個優點,它也是一個限制。它不能用於私有倉庫或需要安全訪問的情況
只讀 - 預設情況下它是隻讀的。儘管您可以使用--enable=receive-pack選項推送更改,但由於缺乏身份驗證和安全性,不建議這樣做。
沒有加密 - 由於 git 協議沒有處理加密,因此傳輸安全和敏感資料是不安全的。
如果您需要身份驗證和加密,則應考慮用於私有倉庫的替代方案,例如SSH或HTTPS。