搜尋
首頁開發工具Gitgit和svn是什麼

git和svn是什麼

Nov 30, 2021 pm 02:09 PM
gitsvn

Git是一款開源的分散式版本控制系統,用以有效、高速的處理從很小到非常大的專案版本管理。 svn是一款開源的集中式版本控制系統,用於多個人共同開發同一個項目,實現共享資源,實現最終集中式的管理。

git和svn是什麼

本教學操作環境:Windows7系統、Git2.30.0版、Dell G3電腦。

git是什麼

Git是一款免費、開源的分散式版本控制系統,用於敏捷且有效率地處理任何或小或大的專案

Git是一個開源的分散式版本控制系統,用以有效、高速的處理從很小到非常大的專案版本管理。 Git 是 Linus Torvalds 為了協助管理 Linux 核心開發而開發的一個開放原始碼的版本控制軟體。

分散式相比於集中式的最大差異在於開發者可以提交到本地,每個開發者透過複製(git clone),在本地機器上拷貝一個完整的Git倉庫。

Git屬於分散式的版本控制系統

2 (1).png

#Git有下列特點:

  • #Git中每個克隆(clone)的版本庫都是平等的。你可以從任何一個版本庫的克隆來創建屬於你自己的版本庫,同時你的版本庫也可以作為來源提供給他人,只要你願意。

  • Git的每一次提取操作,其實都是一次程式碼倉庫的完整備份。

  • 提交完全在本地完成,無須別人給你授權,你的版本庫你作主,並且提交總是會成功。

  • 甚至基於舊版的變更也可以成功提交,提交會基於舊的版本建立一個新的分支。

  • Git的提交不會被打斷,直到你的工作完全滿意了,PUSH給他人或他人PULL你的版本庫,合併會發生在PULL和PUSH過程中,無法自動解決的衝突會提示您手動完成。

  • 衝突解決不再像是SVN一樣的提交競賽,而是在需要的時候才進行合併和衝突解決。

  • Git 也可以模擬集中式的工作模式

  • #Git版本庫統一放在伺服器中

  • 可以授權Git 版本庫:誰能建立版本庫,誰能向版本庫PUSH,誰能讀取(複製)版本庫

  • 團隊的成員先將伺服器的版本庫克隆到本地;並經常的從伺服器的版本庫拉(PULL)最新的更新;

  • 團隊的成員將自己的改動推(PUSH)到伺服器的版本庫中,當其他人和版本庫同步(PULL)時,會自動取得改變

  • Git 的集中式工作模式非常靈活

  • 你完全可以在脫離Git伺服器所在網路的情況下,如行動辦公室/出差時,照常使用程式碼庫

  • 你只需要在能夠存取Git伺服器所在網路時,PULL和PUSH即可完成和伺服器同步以及提交

  • Git提供rebase 指令,可以讓你的改動看起來是基於最新的程式碼實現的變更

  • #Git 有更多的工作模式可以選擇,遠非Subversion可比

svn是什麼


1 (1).png

  • #SVN是subversion的縮寫,是一個開放原始碼的版本控制系統,透過採用分支管理系統的高效管理,簡而言之就是用於多個人共同開發同一個項目,實現共享資源,實現最終集中式的管理。
  • SVN管理著隨時間改變的資料。這些資料放置在一個中央資料檔案庫(repository)中。這個檔案庫很像一個普通的文件伺服器,不過它會記住每一次文件的變動。這樣你就可以把檔案恢復到舊的版本,或是瀏覽文件的變動歷史。 Subversion是一個通用的系統,可用於管理任何類型的文件,其中包括了程式原始碼。

  • SVN 屬於 集中式版本控制系統。

    ###集中式的版本控制系統都有一個單一的集中管理的伺服器,保存所有檔案的修訂版本,而協同工作的人們都透過客戶端連到這台伺服器,取出最新的文件或提交更新。 ###############svn的特點概括起來主要由以下幾條:############ 每個版本庫都有唯一的URL(官方地址) ,每個使用者都從這個位址取得程式碼和資料;############ 取得程式碼的更新,也只能連接到這個唯一的版本庫,同步以取得最新資料;### ######### 提交必須有網路連線(非本機版本庫);###
  •  提交需要授權,如果沒有寫入權限,提交會失敗;

  • # 提交並非每次都能夠成功。如果有其他人先於你提交,會提示「改動基於過時的版本,先更新再提交」… 諸如此類;

  •  衝突解決是一個提交速度的競賽:手快者,先提交,平安無事;手慢者,後提交,可能遇到麻煩的衝突解決。

好處:每個人都可以在某種程度上看到專案中的其他人正在做些什麼。而管理者也可以輕鬆掌控每個開發者的權限。

缺點:中央伺服器的單點故障。

若是宕機一小時,那麼在這一小時內,誰都無法提交更新、還原、對比等,也就無法協同工作。如果中央伺服器的磁碟發生故障,而且沒做過備份或備份得不夠及時的話,還會有遺失資料的風險。最壞的情況是徹底丟失整個專案的所有歷史更改記錄,被客戶端提取出來的某些快照資料除外,但這樣的話依然是個問題,你不能保證所有的資料都已經有人提取出來。

svn原理上只關心文件內容的具體差異。每次記錄有哪些文件作了更新,以及都更新了哪些行的什麼內容。

svn和git適用範圍的不同

  • 適用物件不同。

    Git適用於參與開源專案的開發者。他們由於水平高,更在乎的是效率而不是易用性。 SVN則不同,它適合普通的公司開發團隊。使用起來更加容易。

  • 使用的場合不同。

    Git適用於透過Internet,有多個開發角色的單一專案開發,SVN適合企業內部由專案經理統一協調的多個平行專案的開發。

  • 權限管理策略不同。

    Git沒有嚴格的權限管理控制,只要有帳號,就可以匯出、匯入程式碼,甚至執行回退操作。 SVN則有嚴格的權限管理,可以依群組、按個人進行針對某個子目錄的權限控制。區分讀取、寫入權限。更嚴格的,不支援回退操作。保證代碼永遠可以追蹤。

  • 分支(branch)的使用範圍不一樣。

    Git中,你只能針對整個倉庫作branch,而且一旦刪除,便無法恢復。而SVN中,branch可以針對任何子目錄,它本質上就是一個拷貝操作。所以,可以建立非常多、層次性的branch,並且,在不需要時將其刪除,而以後需要時只要checkout老的SVN版本就可以了。

  • 基於第三點,Git適用於單純的軟體項目,典型的就是一些開源項目,例如Linux核心、busybox等。相反,SVN擅長多專案管理。

    例如,你可以在一個SVN倉庫中存放一個手機專案的bsp/設計文件/檔案系統/應用程式/自動化編譯腳本,或是在一個SVN中存放5款手機專案的檔案系統。 git中必須建立n(項目數)*m(元件數)個倉庫。 SVN中只需要最多n或m個就可以了。

  • Git使用128位元ID作為版本號,而且checkout時要註明是哪個branch;而SVN使用一個遞增的序號作為全域唯一的版本號,更簡潔易懂。雖然可以使用gittag來建立一些文字化的別名,但畢竟那隻是針對特殊版本。

  • 可追蹤性

    git的典型開發過程為:建立分支,進行開發,提交到本機master,刪除分支。這樣做的後果是以前的修改細節會遺失。

    而在SVN下做同樣的事情,不會遺失任何細節。

  • 局部更新,局部還原。

    SVN由於是在每個資料夾建立一個.svn資料夾來實現管理,所以可以很簡單實現局部更新或還原。假如你只希望更新某些部分,svn可以很好實現。同時程式碼寫錯了,同時可以很好實現局部還原,當然git也可以透過歷史版本還原,但是無法簡單地實現局部還原。

推薦學習:《Git教學

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

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
git and github:有什麼關係?git and github:有什麼關係?Apr 14, 2025 am 12:10 AM

Git和GitHub是不同的工具:Git是用於版本控制的軟件,GitHub是基於Git的在線平台。 1.Git允許你跟踪文件變化和協同開發。 2.GitHub提供代碼託管和協作工具,增強團隊開發效率。

GitHub:開發人員和項目的平台GitHub:開發人員和項目的平台Apr 13, 2025 am 12:01 AM

GitHub的核心功能包括版本控制、分支管理、代碼審查、問題跟踪和項目管理。 1.版本控制與分支管理基於Git,允許追踪代碼變更和實驗性開發。 2.代碼審查通過PullRequest實現,提升代碼質量和團隊協作。 3.問題跟踪與項目管理通過Issues和項目管理板進行,提高項目透明度和可追踪性。

行動中的github:示例和用例行動中的github:示例和用例Apr 12, 2025 am 12:16 AM

GitHub是提升軟件開發效率和質量的強大工具。 1)版本控制:通過Git管理代碼變更。 2)PullRequests:進行代碼審查,提高代碼質量。 3)Issues:跟踪bug和項目進度。 4)GitHubActions:自動化構建、測試和部署流程。

git vs. github:版本控制和代碼託管git vs. github:版本控制和代碼託管Apr 11, 2025 am 11:33 AM

Git是版本控制系統,GitHub是基於Git的代碼託管平台。 Git用於管理代碼版本,支持本地操作;GitHub提供在線協作工具,如Issue跟踪和PullRequest。

什麼是簡單的話?什麼是簡單的話?Apr 09, 2025 am 12:12 AM

Git是一個開源的分佈式版本控制系統,幫助開發者跟踪文件變化、協同工作和管理代碼版本。它的核心功能包括:1)記錄代碼修改,2)回退到之前版本,3)協同開發,4)創建和管理分支進行並行開發。

git和github相同嗎?git和github相同嗎?Apr 08, 2025 am 12:13 AM

Git和GitHub不是同一回事。 Git是版本控制系統,GitHub是基於Git的代碼託管平台。 Git用於管理代碼版本,GitHub提供在線協作環境。

如何將github用於HTML?如何將github用於HTML?Apr 07, 2025 am 12:13 AM

使用GitHub管理HTML項目的原因是它提供了版本控制、協作開發和展示作品的平台。具體步驟包括:1.創建並初始化Git倉庫,2.添加和提交HTML文件,3.推送到GitHub,4.使用GitHubPages部署網頁,5.利用GitHubActions自動化構建和部署。此外,GitHub還支持代碼審查、Issue和PullRequest功能,幫助優化和協作開發HTML項目。

我應該從git還是github開始?我應該從git還是github開始?Apr 06, 2025 am 12:09 AM

從Git開始更適合深入理解版本控制原理,從GitHub開始更適合關注協作和代碼託管。 1.Git是一個分佈式版本控制系統,幫助管理代碼版本歷史。 2.GitHub是一個基於Git的在線平台,提供代碼託管和協作功能。

See all articles

熱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中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境