Git 系列教程(1)- Git 簡介


前言

  • 因為工作中目前要大量使用 Git,雖然之前已經會用了,但沒有系統的總結過,現在來重新總結
  • 概念篇會直接搬網上的教程,比如:菜鳥、廖雪峰、老張、中文版Git,就不再花時間自己總結過概念了

 

Git 是什么?

  • Git是目前世界上最先進的分布式版本控制系統(沒有之一),用於敏捷高效地處理任何或小或大的項目
  • Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件
  • Git 與常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本庫的方式,不必服務器端軟件支持

 

什么是集中式版本控制系統?

  • 版本庫是集中存放在中央服務器的
  • 而干活的時候,用的都是自己的電腦,所以要先從中央服務器取得最新的版本,然后開始干活
  • 干完活了,再把自己的活推送給中央服務器
  • 中央服務器就好比是一個圖書館,你要改一本書,必須先從圖書館借出來,然后回到家自己改,改完了,再放回圖書館

 

缺點

  • 集中式版本控制系統最大的毛病就是必須聯網才能工作
  • 如果在局域網內還好,帶寬夠大,速度夠快
  • 可如果在互聯網上,遇到網速慢的話,可能提交一個10M的文件就需要5分鍾,體驗極其不好

 

什么是分布式版本控制系統?

  • 分布式版本控制系統根本沒有“中央服務器”,每個人的電腦上都是一個完整的版本庫,就不需要聯網了
  • Git 這種系統,客戶端並不只提取最新版本的文件快照, 而是把代碼倉庫完整地鏡像下來,包括完整的歷史記錄
  • 那任何一處協同工作用的服務器發生故障,事后都可以用任何一個鏡像出來的本地倉庫恢復, 因為每一次的克隆操作,實際上都是一次對代碼倉庫的完整備份
  • 它還以指定和若干不同的遠端代碼倉庫進行交互,因此你就可以在同一個項目中,分別和不同工作小組的人相互協作,可以根據需要設定不同的協作流程

 

Git 和 SVN 的區別

  • Git 是分布式的,SVN 不是:這是 Git 和其它非分布式的版本控制系統,例如 SVN,CVS 等,最核心的區別

  • Git 把內容按元數據方式存儲,而 SVN 是按文件:所有的資源控制系統都是把文件的元信息隱藏在一個類似 .svn、.cvs 等的文件夾里

  • Git 分支和 SVN 的分支不同:分支在 SVN 中一點都不特別,其實它就是版本庫中的另外一個目錄

  • Git 沒有一個全局的版本號,而 SVN 有:目前為止這是跟 SVN 相比 Git 缺少的最大的一個特征

  • Git 的內容完整性要優於 SVN:Git 的內容存儲使用的是 SHA-1 哈希算法。這能確保代碼內容的完整性,確保在遇到磁盤故障和網絡問題時降低對版本庫的破壞

 

Git 的工作流程

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM