Git分布式版本控制系統(tǒng)

1.簡介

Git是一個開源的分布式版本控制系統(tǒng)倍权,
是目前世界上最快、最簡單捞烟、也是最流行的版本控制工具账锹,
它可以有效、高速的管理從很小到非常大的項目版本坷襟。
Git是Linus Torvalds為了幫助管理Linux內(nèi)核源碼,
而開發(fā)的一款開源的免費的版本控制工具生年。

Git主要用途:
1.保存每一次修改婴程,便于追蹤查看項目中所有文件的變化;
2.同時使用多種方式實現(xiàn)一個任務(并行分支)抱婉,然后挑選最好的實現(xiàn)留下档叔;
3.方便多人協(xié)作開發(fā)同一個項目桌粉,保持項目的一致。

2.版本控制系統(tǒng)

版本控制系統(tǒng)是一種記錄一個或多個文件內(nèi)容變化衙四,
以便將來查閱特定版本修訂情況的系統(tǒng)铃肯。
該系統(tǒng)通常用于管理軟件源代碼文件的版本,
實際上對任何類型的文件都能進行版本控制传蹈。

如果你是位作家或設計師押逼,
可能會需要保存某個文件的所有修訂版本,
通常情況下需要手動備份這些文件惦界。
采用版本控制系統(tǒng)(VCS)管理所有文件版本挑格,
可以回溯文件之前的所有狀態(tài),
甚至整個項目回退到某個歷史狀態(tài)沾歪。
這樣就可以隨心所欲的進行創(chuàng)作漂彤,
而不用擔心修改之前的文件丟失問題。
你可以比較文件兩個版本之間的變化灾搏,
查看項目中其他人的修改記錄挫望,
即使有人誤改誤刪項目中的文件,
也可以輕松恢復到原樣狂窑。

3.本地版本控制系統(tǒng)

通常大家會復制整個目錄來備份項目和文件媳板,
或許還會改名加上備份時間以示區(qū)別。
不過有時候會混淆所在的工作目錄蕾域,
一旦弄錯文件丟了數(shù)據(jù)就沒法撤銷恢復拷肌。
為了解決這個問題,
人們開發(fā)了許多種本地版本控制系統(tǒng)旨巷,
大多都是采用某種簡單的數(shù)據(jù)庫來記錄文件的歷次更新差異巨缘。


4.集中式版本控制系統(tǒng)

接下來人們又遇到一個問題,
如何讓在不同電腦上的開發(fā)者協(xié)同工作采呐?
于是集中化的版本控制系統(tǒng)應運而生若锁。
這類系統(tǒng)有CVS,SVN等斧吐,
它們有一個集中管理的服務器又固,
保存所有文件的修訂版本,
而協(xié)同工作的人們通過客戶端連接服務器煤率,
取出最新的文件或者提交文件仰冠。


相較于本地版本控制系統(tǒng),
每個人都可以看到項目中的其他人正在做些什么蝶糯。
管理員也可以輕松掌控每個開發(fā)者的權(quán)限洋只,
并且管理一個集中系統(tǒng)遠比維護各個終端本地數(shù)據(jù)庫容易。

缺點是中央服務器的單點故障,
如果服務器宕機识虚,那么在這段時間內(nèi)肢扯,
誰都無法提交更新,也就無法協(xié)同工作担锤。
要是中央服務器的磁盤發(fā)生故障蔚晨,
而沒有備份,就會有丟失數(shù)據(jù)的風險肛循。
同樣本地版本控制系統(tǒng)也存在類似問題铭腕。
集中式版本控制系統(tǒng)最大問題就是必須聯(lián)網(wǎng),
而且對帶寬和網(wǎng)速要求很高育拨,
如果在局域網(wǎng)內(nèi)還好谨履,帶寬和速度通常是夠的,
否則既不能提交也不能回滾熬丧,
更不能查看文件的歷史記錄笋粟,
對于使用者的工作效率是個巨大的打擊。

5.分布式版本控制系統(tǒng)

于是分布式版本控制系統(tǒng)面世了析蝴。
這類系統(tǒng)有Git害捕,Mercurial等,
客戶端并不只提取最新版本的文件快照闷畸,
而是把代碼倉庫完整地鏡像下來尝盼。
這么即使任何一處協(xié)同工作用的服務器發(fā)生故障,
事后都可以用任何一個客戶端鏡像出來的本地倉庫恢復佑菩。
因為每一次的提取操作盾沫,
實際上都是一次對代碼倉庫的完整克隆,
通過這種機制實現(xiàn)了分布式去中心化殿漠。


這類系統(tǒng)可以指定和多個不同的遠端代碼倉庫進行交互赴精。
你可以在同一個項目中,分別和不同工作小組的人相互協(xié)作绞幌。
你可以根據(jù)需要設定不同的協(xié)作流程蕾哟,比如層次模型式的工作流,
而這在以前的集中式系統(tǒng)中是無法實現(xiàn)的莲蜘。

6.Git和SVN區(qū)別

我們使用比較多的集中式版本控制系統(tǒng)是SVN谭确,
經(jīng)常會拿來和分布式版本控制系統(tǒng)Git進行比較,
Git本地倉庫包含代碼庫還有歷史庫票渠,
在本地的環(huán)境開發(fā)就可以記錄歷史逐哈,
而SVN的歷史庫存在于中央倉庫,
每次對比與提交代碼都必須連接到中央倉庫才能進行问顷。
使用SVN必須聯(lián)網(wǎng)鞠眉,否則只能罷工薯鼠,
而Git只在和他人同步代碼時需要聯(lián)網(wǎng),
由于Git本地記錄和分支的關(guān)系械蹋,
合并同步代碼的工作也非常方便。
當然Git的優(yōu)勢不單是不必聯(lián)網(wǎng)這么簡單羞芍,
還有Git極其強大的分支管理哗戈,
在Git中創(chuàng)建一個分支或者標簽是非常簡單的,
但是SVN創(chuàng)建一個分支就必須復制整個目錄荷科,
這就把SVN等遠遠拋在了后面唯咬。
另外SVN必須有一個"中央服務器",
而Git每一個客戶端都可以作為服務器畏浆,
通常我們會約定一個"偽中央服務器"同步代碼胆胰。

7.偽中央服務器

分布式版本控制系統(tǒng)根本沒有"中央服務器",
每個人的電腦上都是一個完整的版本庫刻获,
那么多人開發(fā)如何協(xié)作呢蜀涨?
比如你在自己電腦上改了文件A,
你的同事也在他的電腦上也改了文件A蝎毡,
這時你們倆之間只需把各自的修改推送給對方厚柳,
就可以互相看到對方的修改了。

在實際使用分布式版本控制系統(tǒng)的時候沐兵,
很少在兩人之間的電腦上推送版本庫的修改别垮,
因為可能你們倆不在一個局域網(wǎng)內(nèi),
兩臺電腦互相訪問不了扎谎,
也可能今天你的同事請假了碳想,
他的電腦壓根沒有開機。
因此分布式版本控制系統(tǒng)通常有一臺"偽中央服務器"毁靶,
但這個服務器的作用僅僅是用來方便"交換"大家的修改胧奔,
沒有它大家也一樣干活,
換一臺服務器作為"偽中央服務器"也很方便老充。

8.參考

Git官方教程中文版(支持多語言)
Git教程_廖雪峰的官方網(wǎng)站

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末葡盗,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子啡浊,更是在濱河造成了極大的恐慌觅够,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件巷嚣,死亡現(xiàn)場離奇詭異喘先,居然都是意外死亡,警方通過查閱死者的電腦和手機廷粒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門窘拯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來红且,“玉大人,你說我怎么就攤上這事涤姊∠痉” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵思喊,是天一觀的道長壁酬。 經(jīng)常有香客問我,道長恨课,這世上最難降的妖魔是什么舆乔? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮剂公,結(jié)果婚禮上希俩,老公的妹妹穿的比我還像新娘。我一直安慰自己纲辽,他們只是感情好颜武,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著文兑,像睡著了一般盒刚。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上绿贞,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天因块,我揣著相機與錄音,去河邊找鬼籍铁。 笑死涡上,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的拒名。 我是一名探鬼主播吩愧,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼增显!你這毒婦竟也來了雁佳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤同云,失蹤者是張志新(化名)和其女友劉穎糖权,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體炸站,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡星澳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了旱易。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片禁偎。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡腿堤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出如暖,到底是詐尸還是另有隱情笆檀,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布盒至,位于F島的核電站误债,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏妄迁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一李命、第九天 我趴在偏房一處隱蔽的房頂上張望登淘。 院中可真熱鬧,春花似錦封字、人聲如沸黔州。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽流妻。三九已至,卻和暖如春笆制,著一層夾襖步出監(jiān)牢的瞬間绅这,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工在辆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留证薇,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓匆篓,卻偏偏與公主長得像浑度,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鸦概,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容