什么是git和gitlab

git是一個開源的分布式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。而gitlab是一個用于倉庫管理系統的開源項目,使用Git作為代碼管理工具,并在此基礎上搭建起來的Web服務,可通過Web界面訪問公開的或者私人項目。

什么是git和gitlab

本教程操作環境: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類似的功能,能夠瀏覽源代碼,管理缺陷和注釋。

什么是git和gitlab

GitLab是由GitLabInc.開發,使用MIT許可證的基于網絡的Git倉庫管理工具,且具有wiki和issue跟蹤功能。使用Git作為代碼管理工具,并在此基礎上搭建起來的web服務。

GitLab由烏克蘭程序員DmitriyZaporozhets和ValerySizov開發,它使用ruby語言寫成。后來,一些部分用go語言重寫。截止2018年5月,該公司約有290名團隊成員,以及2000多名開源貢獻者。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教程

以上就是什么是

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享