咱們在介紹git版本管理的時候,沒有提到「服務器」的概念,全部的版本管理操做,都是在本地進行的。這就是git與其它版本管理工具(如CVS、SVN等)最本質的區別所在:分佈式。git
所謂的分佈式,是指git倉庫不是以client-server的形式組織的,而是以對等的形式,在全部的機器上保存相同的copy(固然,是在各自修改以前),並在須要的時候,同步各自的改動,完成「版本控制」的目的。github
假設上面圖片是位於github上的某一個倉庫的當前快照,任何人均可以把它copy到本身的電腦上(這個過程稱做clone),這時就存在兩個如出一轍的倉庫。服務器
通常狀況下,本身電腦上的倉庫稱做本地倉庫(local),github上的倉庫稱做遠端倉庫(remote)。咱們能夠在本地倉庫隨心所欲,不用擔憂影響遠端倉庫,以下:分佈式
圖 遠端倉庫和本地倉庫工具
上圖中,本地倉庫刪除了master分支的兩個提交,並在bX分支上新增了兩個提交。固然,在本地倉庫的任何修改,都不會影響遠端倉庫,直到將本地的改動同步到的遠端爲止。.net
毫無疑問,若是隻是在本地倉庫操做,就不能稱做「版本管理」了。咱們能夠經過git push命令,將本地的修改推送到遠端,一樣,也能夠經過git pull/git rebase等命令,將遠端的改動同步到本地。版本控制