
- Git 入門
- Git - 首頁
- Git - 版本控制
- Git - 基本概念
- Git - 命令列
- Git - 安裝
- Git - 首次設定
- Git - 基本命令
- Git - 獲取幫助
- Git - 工具
- Git - 速查表
- Git - 術語
- Git 分支
- Git - 簡述分支
- Git - 建立新分支
- Git - 切換分支
- Git - 分支和合並
- Git - 合併衝突
- Git - 管理分支
- Git - 分支工作流程
- Git - 遠端分支
- Git - 追蹤分支
- Git - 變基
- Git - 變基 vs. 合併
- Git - 合併提交
- Git 操作
- Git - 克隆操作
- Git - 標籤操作
- Git - 別名操作
- Git - 提交操作
- Git - 暫存操作
- Git - 移動操作
- Git - 重新命名操作
- Git - 推送操作
- Git - 拉取操作
- Git - Fork 操作
- Git - Patch 操作
- Git - Diff 操作
- Git - 狀態操作
- Git - 日誌操作
- Git - HEAD 操作
- Git - origin master
- Git 撤銷
- Git - 撤銷更改
- Git - Checkout
- Git - Revert
- Git - Reset
- Git - 恢復操作
- Git - Rm
- Git - Switch 操作
- Git - Cherry-pick
- Git - Amend
- Git 伺服器端
- Git - 本地協議
- Git - 智慧HTTP協議
- Git - 啞HTTP協議
- Git - SSH協議
- Git - Git協議
- Git - 在伺服器上安裝Git
- Git - 設定伺服器
- Git - Daemon
- Git - GitWeb
- Git - GitLab
- Git - 第三方託管選項
- 分散式Git
- Git - 分散式工作流程
- Git - 為專案做貢獻
- Git - 維持專案
Git - 啞HTTP協議
Git 啞HTTP 協議也稱為 舊版HTTP協議。它是透過HTTP提供Git倉庫的較舊且更簡單的方法。
Git被視為檔案的集合,這些檔案以靜態方式提供。
主要特性
1. 基於檔案系統 - 在啞HTTP中,檔案以靜態方式提供。提交、blob、樹等物件是透過一個接一個地從伺服器下載來檢索的。
2. 缺少Git特定邏輯 - 伺服器上不需要任何Git特定服務或命令。任何可用的Web伺服器,例如Apache,都可以將git目錄作為一組檔案提供。
3. 效率低下 - 由於伺服器不需要任何Git特定命令,使用者必須一次一個地執行克隆、拉取、獲取等操作。這使得整個過程相當緩慢。
4. 缺少智慧協商 - 會發生冗餘和不必要的物件下載,因為啞HTTP不會與客戶端協商。
5. 只讀 - 啞HTTP是隻讀的。它允許你克隆、拉取和獲取倉庫,但你不能向伺服器推送任何內容。
在啞HTTP中,Web伺服器直接將原始Git倉庫作為檔案提供。
為了設定啞HTTP,必須在HTTP文件根目錄下安裝一個裸Git倉庫,並且必須設定一個post-update鉤子來處理倉庫更新。
啟用後,任何有權訪問託管它的Web伺服器的使用者都可以使用啞HTTP克隆倉庫。
雖然它缺乏智慧HTTP的複雜功能,但啞HTTP使透過HTTP進行的Git操作更簡單、更易於訪問。
工作原理?
克隆或獲取倉庫時,會發出一系列HTTP請求。
來自.git/objects/目錄的單個物件。
來自.git/refs的引用資訊。
來自.git/objects/pack的Pack檔案。
由於啞HTTP中的每個物件都被視為並下載為單獨的HTTP請求,因此整體效能較慢。
要透過HTTP啟用對我們的Git倉庫的讀取訪問,請按照以下步驟操作
cd /var/www/htdocs/ git clone --bare /path/to/git_project gitproject.git cd gitproject.git mv hooks/post-update.sample hooks/post-update chmod a+x hooks/post-update
Git的預設post-update鉤子執行git update-server-info以保持HTTP獲取和克隆正常工作。
當更改被推送到倉庫時,包括透過SSH,此鉤子會自動觸發。
推送倉庫後,其他使用者可以透過執行類似git clone http://example.com/path/to/repo.git的命令來克隆它。
透過檢索倉庫的完整副本,此命令確保所有相關元資料都是最新的,並且可以透過HTTP訪問。