首先要說:git是目前世界上最先進的分散式版本控制系統(沒有之一)。
他是為何要寫git的呢?話說
linus雖然建立了linux,但linux的壯大是靠全世界熱心的志願者參與的,這麼多人在世界各地為linux編寫**,那linux的**是如何管理的呢?
事實是,在2002年以前,世界各地的志願者把源**檔案通過diff的方式發給linus,然後由linus本人通過手工方式合併**!
你也許會想,為什麼linus不把linux**放到版本控制系統裡呢?不是有cvs、svn這些免費的版本控制系統嗎?因為linus堅定地反對cvs和svn,這些集中式的版本控制系統不但速度慢,而且必須聯網才能使用。有一些商用的版本控制系統,雖然比cvs、svn好用,但那是付費的,和linux的開源精神不符。
不過,到了2002年,linux系統已經發展了十年了,**庫之大讓linus很難繼續通過手工方式管理了,社群的弟兄們也對這種方式表達了強烈不滿,於是linus選擇了一個商業的版本控制系統bitkeeper,bitkeeper的東家bitmover公司出於人道主義精神,授權linux社群免費使用這個版本控制系統。
安定團結的大好局面在2005年就被打破了,原因是linux社群牛人聚集,不免沾染了一些梁山好漢的江湖習氣。開發samba的andrew試圖破解bitkeeper的協議(這麼幹的其實也不只他一個),被bitmover公司發現了(監控工作做得不錯!),於是bitmover公司怒了,要收回linux社群的免費使用權。
linus可以向bitmover公司道個歉,保證以後嚴格管教弟兄們,嗯,這是不可能的。實際情況是這樣的:
linus花了兩週時間自己用c寫了一個分散式版本控制系統,這就是git!一個月之內,linux系統的原始碼已經由git管理了!
git也由此誕生了。
Git還原歷史版本
git可以跟蹤你對檔案的每一次修改,並且能夠將檔案還原到特定的歷史資料,這種機制保證了檔案不會被全部丟失,造成不可挽回的損失。1 通過以下命令,檢視檔案的修改日誌 git log 從日誌我們可以看出,日誌由4部分組成 1 commit 提交的id,由16進位制數字構成,這麼長,防止提交版本號衝突。2...
Git 教程(2) Git歷史
同生活中的許多偉大事物一樣,git 誕生於一個極富紛爭大舉創新的年代。linux 核心開源專案有著為數眾廣的參與者。絕大多數的 linux 核心維護工作都花在了提交補丁和儲存歸檔的繁瑣事務上 1991 2002年間 到 2002 年,整個專案組開始啟用一個專有的分散式版本控制系統 bitkeeper...
Git學習 修改提交歷史
1 修改最近提交 git commit amend 修補式提交。將本次提交的內容與上次提交合併到一個commit裡邊。2 將多次提交壓縮為一次提交 git reset soft head 2 git commit 3 刪除某次提交 如刪除a b c d中的提交b,可以執行如下命令 切換到commit...