Git基本概述
大致介紹
Git是一款免費、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項目,可以有效、高速的處理從很小到非常大的項目版本管理。
Git 是 Linus Torvalds 為了幫助管理 Linux 內(nèi)核開發(fā)而開發(fā)的一個開放源碼的版本控制軟件
Git的誕生
Git是由Linus編寫的,這個名字應(yīng)該不會陌生,著名的Linux就是Linus的杰作?。▍柡Φ娜烁缮抖紖柡Γm然Linus創(chuàng)建了Linux,但是Linux的壯大是由全世界熱心的參與者共同努力的結(jié)果,而在2002年以前,世界各地的志愿者把源代碼文件通過diff的方式發(fā)給Linus,然后由Linus本人通過手工方式合并代碼!
可想而知Linus的心有多累,但在2002年Linus選擇了一個商業(yè)的版本控制系統(tǒng)BitKeeper,BitKeeper的東家BitMover公司出于人道主義精神,授權(quán)Linux社區(qū)免費使用這個版本控制系統(tǒng)
但是由于某種原因BitMover公司在2005年收回了Linux社區(qū)的免費使用權(quán)。然后Linus花了兩周時間自己用C寫了一個分布式版本控制系統(tǒng),這就是Git!一個月之內(nèi),Linux系統(tǒng)的源碼已經(jīng)由Git管理了?。▍柡Φ娜烁缮抖紖柡Γ?/p>
Git迅速成為最流行的分布式版本控制系統(tǒng),尤其是2008年,GitHub網(wǎng)站上線了,它為開源項目免費提供Git存儲,無數(shù)開源項目開始遷移至GitHub,包括jQuery,PHP,Ruby等等。
版本控制
◆ 本地版本控制系統(tǒng)
◆ 集中化的版本控制
◆ 分布式的版本控制
本地版本控制系統(tǒng)
大多的本地版本控制系統(tǒng)都是采用某種簡單的數(shù)據(jù)庫來記錄文件的歷次更新差異
集中化的版本控制系統(tǒng)( Centralized Version Control Systems,簡稱 CVCS )
集中式版本控制系統(tǒng),版本庫是集中存放在中央服務(wù)器的,而干活的時候,用的都是自己的電腦,所以要先從中央服務(wù)器取得最新的版本,然后開始干活,干完活了,再把自己的活推送給中央服務(wù)器。中央服務(wù)器就好比是一個圖書館,你要改一本書,必須先從圖書館借出來,然后回到家自己改,改完了,再放回圖書館。
集中式版本控制系統(tǒng)有幾個明顯的缺點:
1、如果遇到中央服務(wù)器故障,那么誰都無法進行提交,也就無法進行協(xié)同工作
2、必須聯(lián)網(wǎng)進行操作
分布式的版本控制系統(tǒng)( Distributed Version Control System,簡稱 DVCS )
客戶端并不只提取最新版本的文件快照,而是把代碼倉庫完整地鏡像下來。這么一來,任何一處協(xié)同工作用的服務(wù)器發(fā)生故障,事后都可以用任何一個鏡像出來的本地倉庫恢復(fù)。因為每一次的提取操作,實際上都是一次對代碼倉庫的完整備份。
分布式版本控制系統(tǒng)根本沒有“中央服務(wù)器”,每個人的電腦上都是一個完整的版本庫,這樣,你工作的時候,就不需要聯(lián)網(wǎng)了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有一個完整的版本庫,那多個人如何協(xié)作呢?比方說你在自己電腦上改了文件A,你的同事也在他的電腦上改了文件A,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
相關(guān)文章
有關(guān)將idea的系統(tǒng)配置文件移到其它盤激活失效的問題
這篇文章給大家介紹win7系統(tǒng)盤空間不足,發(fā)現(xiàn)idea2019.3 占3.4G,將idea的系統(tǒng)配置文件移到其它盤,激活失效的解決方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-11-11IntelliJ IDEA卡死,如何優(yōu)化內(nèi)存
這篇文章主要介紹了IntelliJ IDEA卡死,如何優(yōu)化內(nèi)存,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05如何解決Git推送錯誤:Updates were rejected問題
在使用Git推送更改時,可能會遇到"Updates were rejected"錯誤,這通常是由于遠程倉庫包含了本地不存在的更新,解決這一問題的步驟包括拉取遠程更改、解決沖突、提交更改及再次嘗試推送,遵循正確的步驟可以有效解決沖突,保持代碼庫的一致性2024-10-10VS2019創(chuàng)建MFC程序的實現(xiàn)方法
這篇文章主要介紹了VS2019創(chuàng)建MFC程序的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08網(wǎng)絡(luò)抓包工具wireshark入門教程詳解
Wireshark是一個網(wǎng)絡(luò)數(shù)據(jù)包分析軟件,功能非常強大,奈何他是英文版的,今天就為大家詳細介紹一下網(wǎng)絡(luò)抓包工具wireshark的使用教程2018-10-10Istio?訪問外部服務(wù)流量控制最常用的5個技巧示例
這篇文章主要介紹了Istio訪問外部服務(wù)流量控制最常用5個技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06瀏覽器關(guān)閉使session失效的問題多種解決方式
直接關(guān)閉瀏覽器(或者強制關(guān)閉瀏覽器進程、死機等),服務(wù)器無法處理用戶退出網(wǎng)站的請求,此舉將會導(dǎo)致session失效,下面整理了一些解決方法,感興趣的朋友可以參考下哈2013-07-07