首頁 開發工具 Git svn和git的差別是什麼

svn和git的差別是什麼

May 14, 2020 am 11:54 AM
git svn

svn和git的差別是什麼

svn和git的差別是什麼?

git和svn的差別

 

GIT不只是個版本控制系統,它也是個內容管理系統(CMS),工作管理系統等。如果你是一個具有使用SVN背景的人,你需要做一定的思想轉換,來適應GIT提供的一些概念和特徵。

1.GIT是分散式的,SVN不是:

這是GIT和其它非分散式的版本控制系統,例如SVN,CVS等,最核心的區別。如果你能理解這個概念,那麼你就已經上手一半了。需要做一點聲明,GIT並不是目前第一個或唯一的分散式版本控制系統。還有一些系統,例如Bitkeeper, Mercurial等,也是運行在分散式模式上的。但GIT在這方面做的更好,而且有更多強大的功能特徵。

GIT跟SVN一樣有自己的集中式版本庫或伺服器。但,GIT更傾向於被使用於分散式模式,也就是每個開發人員從中心版本庫/伺服器上chect out程式碼後會在自己的機器上複製一個自己的版本庫。可以這樣說,如果你被困在一個不能連接網絡的地方時,就像在飛機上,地下室,電梯裡等,你仍然能夠提交文件,查看歷史版本記錄,創建項目分支,等。對某些人來說,這好像沒多大用處,但當你突然遇到沒有網路的環境時,這個將解決你的大麻煩。

同樣,這種分散式的操作模式對於開源軟體社群的開發來說也是個巨大的恩賜,你不必再像以前那樣做出補丁包,透過email方式發送出去,你只需要創建一個分支,向專案團隊發送一個推請求。這能讓你的程式碼保持最新,而且不會在傳輸過程中遺失。 GitHub.com就是一個這樣的優秀案例。

有些謠言傳出subversion將來的版本也會是基於分散式模式。但至少目前還看不出來。

2.GIT把內容按元資料方式存儲,而SVN是按文件:

所有的資源控制系統都是把文件的元資訊隱藏在一個類似.svn,.cvs等的資料夾裡。如果你把.git目錄的體積大小跟.svn比較,你會發現它們差距很大。因為,.git目錄是處於你的機器上的一個克隆版的版本庫,它擁有中心版本庫上所有的東西,例如標籤,分支,版本記錄等。

3.GIT分支和SVN的分支不同:

分支在SVN中一點不特別,就是版本庫中的另外的一個目錄。如果你想知道是否合併了一個分支,你需要手動執行像這樣的指令svn propget svn:mergeinfo,來確認程式碼是否被合併。感謝Ben同學指出這個特徵。所以,常常會發生有些分支被遺漏的情況。

然而,處理GIT的分支卻是相當的簡單有趣。你可以從同一個工作目錄下快速的在幾個分支間切換。你很容易發現未合併的分支,你能簡單而快速的合併這些文件。

 

4.GIT沒有一個全域的版本號,而SVN有:

目前為止這是跟SVN相比GIT缺少的最大的一個特徵。你也知道,SVN的版本號碼實際上是任何一個對應時間的原始碼快照。我認為它是從CVS進化到SVN的最大的突破。因為GIT和SVN從概念上就不同,我不知道GIT裡是什麼特徵與之對應。如果你有任何的線索,請在留言裡奉獻出來與大家分享。

更新:有些讀者指出,我們可以使用GIT的SHA-1來唯一的識別一個程式碼快照。這個並不能完全的取代SVN裡容易閱讀的數字版本號。但,用途應該是相同的。

5.GIT的內容完整性要優於SVN:

GIT的內容儲存所使用的是SHA-1雜湊演算法。這能確保程式碼內容的完整性,確保在遇到磁碟故障和網路問題時降低對版本庫的破壞。

相關推薦:《Git教學

以上是svn和git的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Go語言中用於浮點數運算的庫有哪些? Go語言中用於浮點數運算的庫有哪些? Apr 02, 2025 pm 02:06 PM

Go語言中用於浮點數運算的庫介紹在Go語言(也稱為Golang)中,進行浮點數的加減乘除運算時,如何確保精度是�...

显著超越 SFT,o1/DeepSeek-R1 背后秘诀也能用于多模态大模型了 显著超越 SFT,o1/DeepSeek-R1 背后秘诀也能用于多模态大模型了 Mar 12, 2025 pm 01:03 PM

上海交大、上海AILab和港中文大学的研究人员推出Visual-RFT(视觉强化微调)开源项目,该项目仅需少量数据即可显著提升视觉语言大模型(LVLM)性能。Visual-RFT巧妙地将DeepSeek-R1的基于规则奖励的强化学习方法与OpenAI的强化微调(RFT)范式相结合,成功地将这一方法从文本领域扩展到视觉领域。通过为视觉细分类、目标检测等任务设计相应的规则奖励,Visual-RFT克服了DeepSeek-R1方法仅限于文本、数学推理等领域的局限性,为LVLM训练提供了新的途径。Vis

Gitee Pages靜態網站部署失敗:單個文件404錯誤如何排查和解決? Gitee Pages靜態網站部署失敗:單個文件404錯誤如何排查和解決? Apr 04, 2025 pm 11:54 PM

GiteePages靜態網站部署失敗:404錯誤排查與解決在使用Gitee...

Go語言中哪些庫是由大公司開發或知名的開源項目提供的? Go語言中哪些庫是由大公司開發或知名的開源項目提供的? Apr 02, 2025 pm 04:12 PM

Go語言中哪些庫是大公司開發或知名開源項目?在使用Go語言進行編程時,開發者常常會遇到一些常見的需求,�...

h5項目怎麼運行 h5項目怎麼運行 Apr 06, 2025 pm 12:21 PM

運行 H5 項目需要以下步驟:安裝 Web 服務器、Node.js、開發工具等必要工具。搭建開發環境,創建項目文件夾、初始化項目、編寫代碼。啟動開發服務器,使用命令行運行命令。在瀏覽器中預覽項目,輸入開發服務器 URL。發布項目,優化代碼、部署項目、設置 Web 服務器配置。

如何獲取海外版的發貨地區數據?有哪些現成的資源可以使用? 如何獲取海外版的發貨地區數據?有哪些現成的資源可以使用? Apr 01, 2025 am 08:15 AM

問題介紹:如何獲取海外版的發貨地區數據?是否有現成的資源可以使用?在跨境電商或全球化業務中,獲取準...

在Go語言中使用Redis Stream實現消息隊列時,如何解決user_id類型轉換問題? 在Go語言中使用Redis Stream實現消息隊列時,如何解決user_id類型轉換問題? Apr 02, 2025 pm 04:54 PM

Go語言中使用RedisStream實現消息隊列時類型轉換問題在使用Go語言與Redis...

Python沙漏圖形繪製:如何避免變量未定義錯誤? Python沙漏圖形繪製:如何避免變量未定義錯誤? Apr 01, 2025 pm 06:27 PM

Python入門:沙漏圖形繪製及輸入校驗本文將解決一個Python新手在沙漏圖形繪製程序中遇到的變量定義問題。代碼...

See all articles