如果你了解Git工作的基本原則,然后使用Git將容易的多。
Git和其他VCS之間的主要區(qū)別是Git考慮的是存儲數(shù)據(jù)的方式。大部分的其他系統(tǒng)存儲為基于文件改變的列表的信息。這些系統(tǒng)(CVS,Subversion,Perforce等)認(rèn)為他們是一組文件,并隨著時間的推移記錄每個文件所做的更改信息。

上面這張圖可以很好的理解,我們在版本庫中有三個文件,他們都是版本1。
當(dāng)我們在某個時間點修改了File A 和 File C 這兩個文件,他們的版本都變成了版本2。而File B沒有做修改所以我們的版本管理程序沒有對它做任何標(biāo)記,只有在版本4的時候修改了File B這個文件的時候才會做記錄。
而Git和其他VCSS之間的一個重要區(qū)別,Git會認(rèn)為它的數(shù)據(jù)更像是一組小型文件系統(tǒng)的快照。
每當(dāng)你提交或保存了你的Git項目時,它主要負(fù)責(zé)創(chuàng)建文件快照,并存儲到該快照的引用。
為了提高效率,如果文件沒有改變,Git不會再次存儲該文件,只會創(chuàng)建一個相同文件的鏈接。
存儲在Git中的數(shù)據(jù)更像是一個快照流。

Git文件的三種狀態(tài)

Git項目的三個主要部分:版本庫,工作區(qū)和臨時區(qū)
工作區(qū)(Working Directory)
就是你在電腦里能看到的目錄,比如我的learngit文件夾就是一個工作區(qū):

版本庫(Repository)
工作區(qū)有一個隱藏目錄.git,這個不算工作區(qū),而是Git的版本庫。
Git的版本庫里存了很多東西,其中最重要的就是稱為stage(或者叫index)的暫存區(qū),還有Git為我們自動創(chuàng)建的第一個分支master,以及指向master的一個指針叫HEAD。

暫存區(qū)(stage 或者叫index)
你可以簡單理解為,需要提交的文件修改通通放到暫存區(qū),然后,一次性提交暫存區(qū)的所有修改。
基本的Git的工作流程
1.修改工作區(qū)下的文件。
2.將修改的文件放入暫存區(qū)。
3.將暫存區(qū)的文件提交到版本庫。