現學現忘 Git基礎 3 Git介紹

2022-10-09 20:24:16 字數 2057 閱讀 1282

目錄git是目前世界上最先進的分布式版本控制系統,開源、免費。

git是 linus (林納斯)為了幫助管理 linux 核心開發而開發的乙個開放原始碼的版本控制軟體。

tips:linus在2023年建立linux,現在已經成為最大的伺服器系統軟體了。

linux的壯大是靠全世界熱心的志願者:

在2023年以前,世界各地的志願者把源**檔案發給linus,然後由linus本人通過手工方式合併**!

為什麼linus不把linux**放到版本控制系統裡呢?

不是有cvs、svn這些免費的版本控制系統嗎?

因為linus堅定地反對cvs和svn,這些集中式的版本控制系統不但速度慢,而且必須聯網才能使用。

有一些商用的版本控制系統,雖然比cvs、svn好用,但那是付費的,和linux的開源精神不符。

不過,到了2023年,linux系統已經發展了十年了,**庫之大讓linus很難繼續通過手工方式管理了,社群的裡也對這種方式表達了強烈不滿,於是linus選擇了乙個商業的版本控制系統bitkeeper,bitkeeper的東家bitmover公司出於人道主義精神,授權linux社群免費使用這個版本控制系統。

安定團結的大好局面在2023年就被打破了,原因是linux社群牛人聚集,開發samba的這個人andrew,試圖破解bitkeeper的協議(這麼幹的其實也不只他乙個),被bitmover公司發現了,於是bitmover公司怒了,要收回linux社群的免費使用權。

linus花了兩周時間自己用c寫了乙個分布式版本控制系統,這就是git!乙個月之內,linux系統的原始碼已經由git管理了!

linus 對新的版本控制系統制訂了若干目標,如下圖所示:

git迅速成為最流行的分布式版本控制系統,尤其是2023年,github**上線了,它為開源專案免費提供git儲存,無數開源專案開始遷移至github,包括jquery,php,ruby等等。

歷史就是這麼偶然,如果不是當年bitmover公司威脅linux社群,可能現在我們就沒有免費而超級好用的git了。

git的發展歷史圖:

當git剛剛推出的時候很多人還對他發生質疑,但是不久之後因為git具備非常好的特點,導致了開源社群很多專案沒過多久,就陸陸續續的從svn上轉移到git上來進行版本控制。

(1)git的特點如下:

(2)簡單說明:

git有最優的儲存能力以及非凡的效能,得益於林納斯(linus torvalds:林納斯·本納第克特·托瓦茲,linux核心的發明人)本身的這個技能,他是linux核心專家,也是檔案系統的管理專家。所以他開發出來的git具備了最優的儲存能力以及非凡的效能。林納斯它本身就是崇尚開源的,所以他開發的git也是開源的。

git還很容易做備份,還支援離線的操作。基於git的分支管理的成本是非常低的,而且也非常容易定製工作流程。

在實際使用分布式版本控制系統的時候,其實很少在兩人之間的電腦上推送版本庫的修改,因為可能你們倆不在乙個區域網內,兩台電腦互相訪問不了,也可能今天你的同事病了,他的電腦壓根沒有開機。因此分布式版本控制系統通常也有一台充當」**伺服器」的電腦,但這個伺服器的作用僅僅是用來方便「交換」大家的修改,沒有它大家也一樣幹活,只是交換修改不方便而已。

多人協作,出現**衝突 (版本控制工具)

多人協作,在**整合期間引發bug(回滾)

多人協作,領導要看專案 (版本歷史)

多人協作,使用者身份的控制(許可權管理)

專案版本的發布問題 (標誌&里程碑管理)

參考:

Git指南 3 git分支

git分支模型是 git的必殺技 git鼓勵在工作流程中頻繁使用分支與合併 git clone下來之後 使用git status檢視 會發現預設的分支是master git branch iss53 git checkout iss53 git status git push 這個時候去github...

Git高階 3 GIt其他操作

目錄 1 git status 2 git pull 3 git fetch 4 git log 5 git rm 6 git mv 7 分支操作 8 git diff 9 git倉庫 10 git標籤 11 git clone 檢視本地倉庫是否存在更改資訊 git status 檢視更改資訊的列表...

3Git使用入門

1 git作用 對源 進行管理 2 安裝git命令 apt get install git apt get install git doc git svn git email git gui gitk 第二條語句安裝的內容原本也是git安裝包的一部分,但因為有著不一樣的軟體包依賴,所以單獨作為軟體包...