安裝以前咱們先來了解下git,而且要反問下:我爲何要使用git?svn用的不是很好嘛,我幹嗎要換?。。。html
問1:爲何須要版本控制系統?linux
版本控制是一種記錄若干文件內容變化,以便未來查閱特定版本修訂狀況的系統。大部分時候咱們使用最頻繁的仍是對源代碼文件的版本控制,其實任何文件均可以歸入版本控制系統。git
1).更好備份:相比於將不一樣版本的文件以時間等命名存儲備份,使用版本控制系統能節約更多的磁盤空間,由於版本控制系統不是文件的複製備份,而是差別備份,文件快照備份等等。服務器
2).更好的回溯:能夠將某個文件回溯到以前的任何一個提交狀態,甚至將整個項目回退到過去的某個時間點。網絡
3).更好的團隊協做:這是我認爲最重要的,團隊共同開發一款軟件,若是沒有版本控制,那是不可想象的,簡單點的可使用文件傳輸到某一位核心開發者庫上進行合併,但若是團隊的成員是分散在全國各地的,甚至是世界各地的,好比linux內核的開發,那徹底是沒辦法進行的。使用版本控制後,能夠比較文件的變化系統,能夠查詢是誰提交了新的更新,而且能夠由項目負責人管理提交,進行更新的管理。分佈式
問2:相比於svn, git有什麼優點?svn
其實這裏真要說出誰比誰好,真的很難說,從不一樣的角度和不一樣的需求可能都會有不一樣的觀點,這裏我也只能說明二者的適用情景。spa
svn屬於集中化的版本控制系統:有一個單一的集中管理的服務器,保存全部文件的修訂版本,而協同工做的成員經過客戶端鏈接到這臺服務器,進行文件上傳和更新。.net
優勢:a.使用簡單,比較符合咱們的常規思惟(我當年從SVN轉向Git也花費了很多時間)。b.同步代碼比較簡單,只要一步操做便可。命令行
缺點:a.丟失數據的風險:最顯而易見的,因爲集中化的特色,若是版本庫的服務器磁盤發生故障等,你不能保證全部的數據已經有人提取出來了,最壞的狀況是完全的丟失整個項目的全部歷史更改記錄。b.網絡中斷的狀況下,協做就沒法進行了,由於沒法鏈接服務器進行上傳和更新。
git屬於分佈式版本控制系統:客戶端並不僅提取最新版本的文件快照,而是把原始的代碼倉庫完整地鏡像下來。
優勢:a.因爲任何人每次提取操做,實際上都是一次對代碼倉庫的完整備份,所以近乎全部的操做均可以在本地執行,速度就是至關的快,而且能夠在網絡斷開的時候操做仍然不受影響,能夠頻繁的進行提交更新,等到有網絡的時候再上傳到遠程的鏡像倉庫就能夠了。b.文檔很詳細,而且命令行的提示也很到位,用起來比較得新應手,並且不少的設置與操做跟linux操做很相近(不虧是linux之父創造的)。c.git的分支模型,至關的輕量級,被稱爲「必殺技」。
缺點:a.每一個開發人員都擁有全部的代碼,不利於核心代碼的保密(若是有重要代碼須要保密,則不建議使用git)
git的歷史
當年教授給咱們將git歷史的時候,感受特別有意思,還特崇拜linux之父Linus Torvalds。linux內核開發是來自世界各地的熱衷於開源的人士,開始他們使用的版本控制系統是一個商業產品BitKeeper,並免費給linux使用,但因爲後期開發人員愈來愈龐大等等緣由,而BitKeeper畢竟是商業產品,終於在2005年與linux內核開源社區結束了合做關係,Linus Torvalds一氣之下就本身開發了一款適合linux內核開發管理的版本管理系統Git。如今Linus Torvalds其實不多寫代碼了,而是將別人提交的代碼合併到內核中去,更多時間裏,就是在對別人提交的代碼說「Yes」或者「No」,或是指導別人該在什麼地方進行修改。
git在linux的安裝:(如下涉及到的軟件基本都使用yum安裝,若是你的機子不聯網,建議你先建本地yum源:http://www.cnblogs.com/shenliang123/p/3829044.html)
1.先從官網 http://git-scm.com/download 上下載git-1.7.3.tar.gz
2.將文件git-1.7.3.tar.gz複製到/opt/git/gitinstall下,並解壓
[root@sl gitinstall]# tar -zxvf git-1.7.3.tar.gz
3.進行配置安裝
[root@sl gitinstall]# cd git-1.7.3 [root@sl git-1.7.3]# ./configure [root@sl git-1.7.3]# make [root@sl git-1.7.3]# make install
----------------------------------------------------------------------------------------------------
但在執行make操做時報錯:缺乏gcc,yum安裝gcc
[root@sl ~]# yum -y install gcc
從新執行make操做,還報錯,缺乏zlib.h。咱們能夠查看是否存在zlib.h
[root@sl ~]# whereis zlib
若是存在則會輸出zlib路徑。不存在則輸出空白,如下是安裝詳情:
1.從http://www.zlib.net/下載zlib最新版:zlib-1.2.8.tar.gz
2.解壓,編譯
[root@sl gitinstall]# tar -zxvf zlib-1.2.8.tar.gz [root@sl gitinstall]# cd zlib-1.2.8 [root@sl zlib-1.2.8]# ./configure [root@sl zlib-1.2.8]# make [root@sl zlib-1.2.8]# make install
--------------------------------------------------------------------------------------------------------------------------------------------
從新執行make,make install,無錯誤輸出,驗證安裝是否成功:
[root@sl git-1.7.3]# whereis git git:/usr/local/bin/git [root@sl git-1.7.3]# git -version git version 1.7.3
以上輸出就意味着安裝成功了!