git是一個開源的分散式版本控制系統,可以有效、高速地處理從很小到非常大的專案版本管理。而gitlab是一個用於倉庫管理系統的開源項目,使用Git作為代碼管理工具,並在此基礎上搭建起來的Web服務,可透過Web介面存取公開的或私人項目。
本教學操作環境:Windows7系統、Git2.30.0版、Dell G3電腦。
什麼是git?
Git(讀音為/gɪt/)是一個開源的分散式版本控制系統,可以有效、高速地處理從很小到非常大的專案版本管理。也是Linus Torvalds為了幫助管理Linux核心開發而開發的一個開放原始碼的版本控制軟體。
git 最初的開發動力來自於 BitKeeper 和 Monotone。 git 最初只是作為一個可以被其他前端(例如 Cogito 或 Stgit)包裝的後端而開發的,但後來 git 核心已經成熟到可以獨立地用作版本控制。許多著名的軟體都使用 git 進行版本控制,其中包括 Linux 核心、X.Org 伺服器和 OLPC 核心等專案的開發流程。
主要功能
git 是用於 Linux 核心開發的版本控制工具。與 CVS、Subversion 一類的集中式版本控制工具不同,它採用了分散式版本庫的作法,不需要伺服器端軟體,就可以運作版本控制,使得原始碼的發布和交流極為方便。 git 的速度很快,這對於諸如 Linux 核心這樣的大專案來說自然很重要。 git 最出色的是它的合併追蹤(merge tracing)能力。
實際上核心開發團隊決定開始開發和使用git 來作為核心開發的版本控制系統的時候,世界上開源社群的反對聲音不少,最大的理由是git 太艱澀難懂,從git 的內部工作機制來說,的確是如此。但隨著開發的深入,git 的正常使用都由一些友善的指令來執行,使 git 變得非常好用。現在,越來越多著名的專案採用 git 來管理專案開發,例如:wine、U-boot 等。
作為開源自由原教旨主義項目,git 沒有對版本庫的瀏覽和修改做任何的權限限制,透過其他工具也可以達到有限的權限控制,例如:gitosis、CodeBeamer MR。原本 git 的使用範圍只適用於 Linux/Unix 平台,但在 Windows 平台下的使用也日漸成熟,這主要歸功於 Cygwin、msysgit 環境,以及 TortoiseGit 這樣易用的 GUI 工具。 git 的原始碼中也已經加入了對 Cygwin 與 MinGW 編譯環境的支援且逐漸完善,為 Windows 使用者帶來福音。
什麼是gitlab?
GitLab 是一個用於倉庫管理系統的開源項目,使用Git作為程式碼管理工具,並在此基礎上搭建起來的Web服務,可透過Web介面進行存取公開的或私人項目。它擁有與Github類似的功能,能夠瀏覽原始碼,管理缺陷和註解。
GitLab是由GitLabInc.開發,使用MIT授權的網路為基礎的Git倉庫管理工具,且具有wiki和issue追蹤功能。使用Git作為程式碼管理工具,並以此為基礎建構起來的web服務。
GitLab由烏克蘭程式設計師DmitriyZaporozhets和ValerySizov開發,它使用Ruby語言寫成。後來,有些部分用Go語言重寫。截止2018年5月,該公司約有290名團隊成員,以及2,000多位開源貢獻者。 GitLab被IBM,Sony,JülichResearchCenter,NASA,Alibaba,Invincea,O’ReillyMedia,Leibniz-Rechenzentrum(LRZ),CERN,SpaceX等組織使用。
GitLab主要服務構成:
1.Nginx靜態web伺服器(它作為GitLab的pros代理,處理我們所有HTTPS靜態存取請求)
2.Gitlab-Workhorse輕量級的反向代理伺服器(它處理一些較大的檔案上傳下載以及我們經常使用的gitpush命令列操作)
3.GitLab-shell用於處理Git命令和修改authorized keys 列表。
4.Logrotate(負責處理GitLa日誌的切割打包等操作)日誌檔案管理工具。
5.postgresal資料庫(儲存到儲存所有gielab的資料資訊)。
6.Redis快取伺服器(快取資料庫資訊加快前台存取速度,以及資料的互動讀寫)。
推薦學習:《Git教學》
以上是什麼是git和gitlab的詳細內容。更多資訊請關注PHP中文網其他相關文章!