前言
該文章只是記錄了一些自己的見解,可能並不准確,只是為了學習時的一些記錄,不喜勿噴,謝謝
1. Git是什么?
git是一個和svn一樣的版本控制軟件,但是與svn不同的是,git是一個分布式的高效版本控制系統。其實現原理跟svn也大相徑庭,采取了一種以空間換時間的理論,為什么是使用分布式呢,因為git會在每個開發者的本地中都保留了一份倉庫副本,即使在斷網的時候,也能提交代碼到各自的倉庫中,等聯網后,再提交到中央倉庫。每個開發者的倉庫都是互相不可見的。
首先我們來了解一些概念和名詞
1.1 本地倉庫
本地倉庫就是用來管理版本庫的一些文件組成,里面記錄了配置信息,當前狀態數據,以及版本記錄等數據
1.2 工作空間
開辟本地倉庫后,在當前目錄中一系列操作都可以看作是對工作空間的操作
1.3 暫存區
類似與windows中粘貼板,對工作空間的修改還沒提交到本地倉庫時的數據進行一個暫存,可以隨時的回退到未修改前的狀態
1.4 分支
當在我們本地進行了多次的提交后,形成了一條鏈路,該鏈路就叫做分支,當前倉庫默認是master分支,也可以使用命令來創建其余分支
2. Git和Svn的區別
這里也是進行百度的,稍微記錄下,來自 https://www.cnblogs.com/baby123/p/10411103.html
- svn是集中式的,而git是分布式的,如果svn的中央倉庫代碼被刪除了,那么可能代碼真的就找不回來了,而git因為是分布式的,本地都有着所有代碼的副本,所以即便中央倉庫代碼丟失,也可能通過本地代碼重新恢復回來。
- svn每次提交記錄,都是將提交的數據之間的差異數據進行保存,而git則是對有修改的文件使用另一個新的文件來保存,即使用了更多的資源,但是現在的社會,最不缺的就是空間資源了。
- svn服務器中使用了全局版本號,每次提交都會產生一個唯一的全局id,且是由順序的。而git則是根據sha1來進行鹽值加密算法獲取,沒有什么先后區分
- 分支管理的不同。svn的開辟新分支,則是將原有的分支的文件全部拷貝一份到新分支中,如果項目比較大,該過程可能會消耗點時間。而git則是通過指針的方式,非常的快速
- 操作的不同。svn中一般提交代碼和拉取代碼兩步驟,而git則有一個暫存區的概念,先add,然后commit。
- 學習曲線的不同。svn相對簡單,git學習曲線相對陡峭
3. 為什么要用Git
- 首先git是一個比svn更加優秀的代碼管理工具,已經可以說取代了svn,其區別如上
- 目前的很多程序中,都需要有git的支持,可能在使用一款工具時,會先檢測是否安裝了git,否則必須要求先安裝git,可見其活躍度
- 由於github和碼雲的興起,拉去代碼都是通過git來操作完成