進(jìn)化史
本地版本控制系統(tǒng)
許多人習(xí)慣用復(fù)制整個項目目錄的方式來保存不同的版本芒炼,或許還會改名加上備份時間以示區(qū)別运提。 這么做唯一的好處就是簡單寡痰,但是特別容易犯錯朋鞍。 有時候會混淆所在的工作目錄,一不小心會寫錯文件或者覆蓋意想外的文件朝巫。
為了解決這個問題,人們很久以前就開發(fā)了許多種本地版本控制系統(tǒng)石景,大多都是采用某種簡單的數(shù)據(jù)庫來記錄文件的歷次更新差異劈猿。
本地版本控制系統(tǒng)
集中化的版本控制系統(tǒng)
接下來人們又遇到一個問題,如何讓在不同系統(tǒng)上的開發(fā)者協(xié)同工作潮孽? 于是揪荣,集中化的版本控制系統(tǒng)(Centralized Version Control Systems,簡稱 CVCS)應(yīng)運而生往史。這么做最顯而易見的缺點是中央服務(wù)器的單點故障仗颈。 如果宕機(jī)一小時,那么在這一小時內(nèi)椎例,誰都無法提交更新挨决,也就無法協(xié)同工作。 如果中心數(shù)據(jù)庫所在的磁盤發(fā)生損壞订歪,又沒有做恰當(dāng)備份脖祈,毫無疑問您將丟失所有數(shù)據(jù)——包括項目的整個變更歷史,只剩下人們在各自機(jī)器上保留的單獨快照刷晋。本地版本控制系統(tǒng)也存在類似問題盖高,只要整個項目的歷史記錄被保存在單一位置,就有丟失所有歷史更新記錄的風(fēng)險眼虱。
集中化的版本控制系統(tǒng)
分布式版本控制系統(tǒng)
于是分布式版本控制系統(tǒng)(Distributed Version Control System喻奥,簡稱 DVCS)面世了
分布式版本控制系統(tǒng)
Git 最常用的命令
git clone [url]
git push [遠(yuǎn)程路徑(orgin)] [本地分支(master)]:[refs/for(heads)/遠(yuǎn)程分支(master)]
git pull
git log
git show [commitId]
git diff
git status
git add .
git commit -m "[string]"
git config -l
git reset --hard [commitId]
git branch -a
git checkout -b