摘要:在和客戶交流代碼開發的程序中,時常會先入為主的交流起Git;但在和很多中小型企業交流的程序,發現SVN的模式也被使用得很頻繁,那么兩者的具體差異有哪些呢?
本文分享自華為云社區《Git VS SVN》,作者:gentle_zhou,
在和客戶交流代碼開發的程序中,時常會先入為主的交流起Git;但在和很多中小型企業交流的程序,發現SVN的模式也被使用得很頻繁,那么兩者的具體差異有哪些呢?
什么是Git
Git是一個分散式的版本控制軟體,最初由瑞典籍Linus Benedict Torvalds創作,在2005年以GPL的條款授權方式出現,最初其目的是為了更好地管理Linux核心開發,Git把資料看做是對小型檔案系統的一系列快照(快照流);每當用戶提交更新或則保存專案狀態的時候,Git就會對當時的全部檔案創建一個快照并保存這個快照的索引;為了效率,如果檔案沒有做修改,Git就不再重新存盤該檔案,而是只保留一個鏈接指向之前存盤的檔案,
隨時間改變,Git內對資料的快照:
什么是SVN
SVN,Apache Subversion的簡稱,是一個開放源代碼的版本控制系統,開發者是Apache軟體基金會,在2000年發了初始版本,SVN是以檔案變更串列的方式來存盤資訊,將存盤在他們那的資訊看做是一組基本檔案和每個檔案隨時間逐步累積的差異;這些資料會放置在一個中央倉庫中,
存盤每個檔案與初始版本的差異:
兩者差異對比
1、Git是分布式的版本管理控制器(代碼開發方便),便于開源專案的開發;SVN是集中式的版本管理控制器(檔案管理方便),便于企業內部并行集中開發
2、Git支持單機操作,服務器即使有故障也可在本地倉庫作業(除了push和pull/fetch,其余操作都可以在本地操作);SVN的服務器如果出現故障,用戶就無法與之互動(所有SVN操作都需要和中央倉庫互動)
3、Git每個開發者本地都是一套完整的版本庫,記錄著所有資訊;SVN需要定期整體備份,安全性較差
4、Git本地創建的分支不會影響其他人,適合多分支并行開發;SVN創建的分支會影響團隊里所有人,多分支并行開發任務較重且繁瑣
5、Git提交程序不會被打斷,有沖突會標記沖突檔案;SVN提交如果有沖突會打斷整個動作,提交的快沒影響,提交的慢,需要先行解決沖突再提交
6、Git沒有嚴格的權限管理控制,只有賬號角色的劃分;SVN的權限管理很嚴格,可以按照組、個人針對子目錄進行權限控制
參考資料
1、https://www.geeksforgeeks.org/difference-between-git-and-svn/
2、https://git-scm.com/book/zh/v2/起步-Git-是什么?
3、https://zh.wikipedia.org/zh-tw/Git
4、https://zh.wikipedia.org/wiki/Subversion
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/511067.html
標籤:其他
