大家好,很開心又和大家見面了。
相信看過標題,很多人覺得奇怪,git誰不知道,誰不會安裝,但是作爲整個git知識體系的一部分,他是什麼,解決了什麼問題,又是我們首先需要了解的。因此特開一篇博客,也算是作爲熱身,覺得沒必要的可以跳到後面的章節。
本篇內容預告:
- git是什麼
- git解決了什麼,爲什麼要使用git
- git,gitlab,github的關係
- git的工作模式和文件存儲,文件狀態
- git安裝
1、git是什麼
git官網如下:https://www.git-scm.com/
官網有一段描述是這樣子的:
git是一個免費開源的分佈式版本控制系統,設計初衷是高效的處理小項目到大項目的所有事情。
git是容易學習的,有一個可以高亮顯示的小腳本。它超越了Subversion、CVS、Perforce和ClearCase等SCM工具,具有廉價的本地分支、方便的暫存區域和多個工作流等特性。
小故事:
Linux內核開源項⽬有着爲數衆⼴的參與者。⼀開始整個項⽬組使⽤BitKeeper來管理和維護代碼。BitKeeper是一個商用的版本控制軟件,但是Bitkeeper對linux是免費託管的。因爲linux的作者linus的老闆支持一些黑客反向工程bitkeeper 的代碼開發競爭產品,所以bitkeeper 的老闆,最終決定停用免費產品,改爲收費。
2005年,BitKeeper不再能免費使⽤,這就迫使Linux開源社區開發⼀套屬於⾃⼰的版本控制系統。這樣LinuS根據自己使用bitkeeper的習慣,開發出了git的原型,⾃誕⽣於2005年以來,Git⽇臻成熟完善,它的速度⻜快,極其適合管理⼤型項⽬,它還有着令⼈難以置信的⾮線性分⽀管理系統,可以應付各種複雜的項⽬開發需求。
2、git解決了什麼?
- 本地建⽴版本庫
- 本地版本控制
- 多主機異地協同⼯作
- 重寫提交說明
- 更好⽤的提交列表
- 更好的差異⽐較
- 更完善的分⽀系統
- 速度極快
前面說了,git是分佈式版本控制系統,本地有自己獨立的版本庫,所以可以本地實現代碼版本控制。另外,因爲git 每個分支都是獨立的鏈路,所以可以很好的比對差異,同樣,因爲大部分操作操作是在本地以及指針操作,所以Git操作速度很快。
相對於svn這種中心版本控制系統,如果中心服務器斷了,就沒法進行正常的代碼提交和管理。
3、git,github,gitlab的關係
- git是一個版本控制軟件
- github 和 gitlab 都是用於管理版本的服務端軟件
- github提供免費服務(代碼須公開)以及付費服務(代碼私有)
- gitlab用於企業內部管理代碼版本庫,功能上類似於github,由於github收費以及外網網速原因,gitlab現在是國內大部分公司選擇的版本管理軟件
4、git的工作模式,文件狀態
- git常規操作有三步,本地版本庫初始化-》修改提交文件到本地版本庫-》版本庫同步到遠程
- git文件(已被版本庫管理的文件)常見狀態有三種,已修改(modified),已提交(committed),已暫存(staged)
工作區和版本庫交互如下:add 將工作區內容加到暫存區,這樣Git會追蹤代碼,git commit會將暫存區代碼保存到對象庫,這樣代碼會永久保存到版本庫
本地服務器和遠程服務器交互如下:通過pull獲取遠程更新代碼,通過push推送代碼到遠程分支
5、git的安裝
- linux 如果是centos 可以直接通過yum 源安裝 即:
yum install git
- ubantu 系統可通過命令
sudo apt-get install git
- windows 可在git官網下載對應版本的git安裝包進行安裝,這裏安裝後會有一個自帶ssh客戶端的git工具,還有一個gui 管理工具,但是不是很好用,還有如tortoiseGit ,sourceTree等的管理工具,如果想用界面管理工具的話可以選擇 source tree,但是前期學習建議通過命令實現,這樣可以對git 有個更深入的瞭解
- 安裝好後,可通過命令
git --version
查看是否安裝成功以及git對應版本號
至此,本節內容告一段落,下一節我們先說一下常用git命令,然後針對每個命令詳細說明並實踐。
感謝您的閱讀,如有問題,請不吝指教。