自git誕生以來發生了很多事,但有一件事情很明顯:軟體正在吞噬這個世界。
譯者 | 彎月,責編 | 郭芮
出品 | csdn(id:csdnnews)
以下為譯文:
git誕生於2023年,差不多是linux誕生(2023年)和今天(2023年)的正中間。自git誕生以來發生了很多事,但有一件事情很明顯:軟體正在吞噬這個世界,而git就是它的「叉子」。
linux和git
也許linus torvalds曾擔心他心愛的linux專案「不會走向壯大和專業化」,然而,時至2023年,他的這種疑慮已煙消雲散,因為linux已發展得如火如荼,甚至主導了伺服器和超級計算機市場。隨著基於linux的android智慧型手機的到來,linux的應用在未來數年內都不會消退。對於許多開發人員,linux已然佔據了日常工作的方方面面,且成為了世界上最大的分布式軟體專案。
隨著2023年git的誕生,linus torvalds可以宣稱他掀起的重大軟體革命有兩次之多(不僅僅是一次)。這兩個專案都源自個人專案,而後者的誕生源於前者的需要。網際網路歷史的郵件列表檔案中記載了這兩項技術的起源。(旁註:torvalds只花了幾天時間就實現了在git上託管git自己的**,這堪稱git最令人印象深刻的壯舉之一)。
如今
時至今日,git無處不在,它已統治了分布式版本控制系統(distributed versioning control system,即dvcs)。然而,它並不是第乙個dvcs,甚至可能不是最好的,換句話說,某些情況並不適合使用git。
linux專案本身也使用了git,這當然是其優秀品質的最強證明。因為比linux還大的開源專案屈指可數。因此,如果它可以管理好linux的話,那麼其他專案又怎麼會有後顧之憂呢?
然而,git也因為自己完美的形象而慘遭打臉。它需要一種不同的思維方式。如果你對自己所做的事情不是十分滿意,那肯定就會出意外。
基於web的dvcs
github解決了git的部分問題。他們獲得靈感為git和分布式軟體協作建立了web介面,並加入了社交的功能(關注開發人員、專案給星等)。他們把握了正確的時機,在這個網際網路日益盛行的世界裡,分布式版本控制似乎是唯一的出路。同時,將傳統的客戶端-伺服器版本控制系統,如cvs和svn(雖然一些大型專案仍在使用這些模型開發,例如openbsd使用了cvs)等,打入了塵埃。
github推廣了git,大批年輕的開發人員都是在github和git的陪伴下成長起來的。然而,這個世界仍然有其他的渴望。gitlab的到來就證明了這一點,其最初的設想是構建saas git服務,如今大多數gitlab的收入來自支援高階功能的自行託管。
然而,當然github並不是唯一乙個基於web的版本控制系統。bitbucket也源自同一時期,其不僅提供git支援,還提供mercurial支援。而且在2023年,新的基於web的軟體開發平台(使用git)誕生了:sourcehut。
為時已晚?
然而,github等工具的快速採用導致其他分布式版本控制系統在流行度上遠遠落後,比如fossil、bazaar和mercurial等系統。即便在某種程度上,某些系統可能更適合大多數專案,例如 fossil在簡單性上付出了很大努力,而且很多人都贊同mercurial是更直觀的dvcs。
當bitkeeper於2023年開源他們的軟體時,他們也沒有意識到他們已經輸掉了這場戰爭。不要忘記,bitkeeper的專有權是git最初誕生的主要原因之一。
近日,bitbucket宣布他們將逐步取消對mercurial的支援。因為bitbucket是mercurial最大的推動者之一,因此這無疑是給了mercurial致命一擊。這在網際網路上引發了不少討論,部分原因是他們逐步取消支援的方式,但大部分原因還是很多人在感情上支援mercurial——爭論的焦點在於這個系統是更健全、更直觀的dvcs。
對此我略感驚訝,因為bitbucket表示,超過90%的使用者在使用git。所以勝負早已塵埃落定,有些開發者反對贏家通吃的做法,但我認為這可能是件好事。
未來?
如今,很明顯git成了dvcs圈子的贏家,這點不可否認。git無處不在,在許多ide/工作流/協作軟體來看,git是預設的dvcs。但萬事瞬息萬變,尤其是在軟體領域。所以我很好奇,14年後我們會怎樣?
原文:【end】
AndroidStudio專案取消SVN關聯
步驟1 刪除svn下專案資料夾 步驟2 找到專案下idea資料夾下vcs.xml檔案 步驟3 開啟vcs.xml檔案,將vcs svn 改為vcs 後儲存即可取消專案與svn關聯 步驟4 桌面新建檔案clean svn folders.reg 將該內容複製到檔案中 windows registry ...
odoo開發筆記 取消正在公升級中模組
場景描述 開發過程中,有時候會遇到,模組安裝的時候,一直卡著,走不過去 或者安裝報錯,導致進入了系統!這個時候,怎麼處理呢?state uninstallable 不可安裝 uninstalled 未安裝 安裝中to upgrade 公升級中 installed 已安裝 例如 取消公升級中的模組。注...
Django 實戰 之 搭專案(正在更新)
系統 win10 python版本 python 3.5 工具 pycharm 3.4 professional 步驟2開啟 runn edit configurations 選擇django server 選擇或者新建伺服器,調整埠等資訊 步驟3 run 結果輸出 process finished...