gitlab是利用ruby on rails乙個開源的版本管理系統,實現乙個自託管的git專案倉庫,可通過web介面進行訪問公開的或者私人專案。
與github類似,gitlab能夠瀏覽源**,管理缺陷和注釋。可以管理團隊對倉庫的訪問,它非常易於瀏覽提交過的版本並提供乙個檔案歷史庫。團隊成員可以利用內建的簡單聊天程式(wall)進行交流。
它還提供乙個**片段收集功能可以輕鬆實現**復用,便於日後有需要的時候進行查詢。
git:是一種版本控制系統,是乙個命令,是一種工具。
gitlib:是用於實現git功能的開發庫。
nginx:靜態web伺服器。
gitlab-shell:用於處理git命令和修改authorized keys列表。
gitlab-workhorse: 輕量級的反向**伺服器。
logrotate:日誌檔案管理工具。
postgresql:資料庫。
redis:快取資料庫。
sidekiq:用於在後台執行佇列任務(非同步執行)。
gitlab shell有兩個作用:為gitlab處理git命令、修改authorized keys列表。
當通過ssh訪問gitlab server時,gitlab shell會:
限制執行預定義好的git命令(git push, git pull, git annex)
呼叫gitlab rails api 檢查許可權
執行pre-receive鉤子(在gitlab企業版中叫做git鉤子)
執行你請求的動作 處理gitlab的post-receive動作
處理自定義的post-receive動作
當通過http(s)訪問gitlab server時,工作流程取決於你是從git倉庫拉取(pull)**還是向git倉庫推送(push)**。
如果你是從git倉庫拉取(pull)**,gitlab rails應用會全權負責處理使用者鑑權和執行git命令的工作;
如果你是向git倉庫推送(push)**,gitlab rails應用既不會進行使用者鑑權也不會執行git命令,它會把以下工作交由gitlab shell進行處理:
呼叫gitlab rails api 檢查許可權
執行pre-receive鉤子(在gitlab企業版中叫做git鉤子)
執行你請求的動作
處理gitlab的post-receive動作
處理自定義的post-receive動作
C 基礎知識整理 基礎知識(2) 類
類,是物件導向語言的基礎。類的三大特性 封裝 繼承 多型。最基本的特性就是封裝性。程式設計師用程式描述世界,將世界的所有事物都看成物件,怎麼描述這個物件?那就是類了。也就是用類來封裝物件。用書上的話說,類是具有相同屬性和行為的物件的抽象。寶馬汽車 別克汽車 五菱之光汽車.基本具有相同的屬性和行為,所...
C 基礎知識整理 基礎知識(2) 類
類,是物件導向語言的基礎。類的三大特性 封裝 繼承 多型。最基本的特性就是封裝性。程式設計師用程式描述世界,將世界的所有事物都看成物件,怎麼描述這個物件?那就是類了。也就是用類來封裝物件。用書上的話說,類是具有相同屬性和行為的物件的抽象。寶馬汽車 別克汽車 五菱之光汽車.基本具有相同的屬性和行為,所...
電腦的基礎知識 電腦的基礎知識
電腦的組成部分與其作用 一 軟體系統 軟體系統的組成分別是 作業系統 應用軟體等。其應用軟體是指特定領域開發 並為特定目的服務的一類軟體。而作業系統是位於底層硬碟與使用者之間溝通的橋梁。使用者可以通過作業系統的使用者頁面,輸入命令,實現使用者需求。二 硬體系統 硬體系統是指構成計算機的物理裝置,即由...