Git與Svn的區別
Git與Svn的區別,主要有五點
程式碼管理——Git
(一)功能[1]
GIT主要是是個版本控制系統,
同時它也是個內容管理系統(CMS),工作管理系統等。
主要有用於clone,push,branch ,merge ,pull ,rebase等操作。
(二)Git與Svn比的優點[2]:
(1).GIT是分散式的,SVN不是;
也就是每個開發人員從中心版本庫/伺服器上chect out程式碼後會在自己的機器上克隆一個自己的版本庫;
同時也有利於開源軟體社群的開發。
(2).GIT把內容按後設資料方式儲存,而SVN是按檔案;
.git目錄比較大,它是一個克隆版本,它擁有中心版本庫上所有的東西,例如版本記錄,分支等。
(3).GIT分支和SVN的分支不同;
GIT的分支可以在IDEA下方,卻是更相當的簡單和有趣。
(4)GIT沒有一個全域性的版本號,而SVN有
(5).GIT的內容完整性要優於SVN;
GIT的內容儲存使用的是SHA-1雜湊演算法,這能確保程式碼內容在遇到磁碟故障和網路問題時版本的完整性。
(6).Git下載後在本地不聯網可見所有的log,而SVN卻需要聯網;
專案管理中,SVN相對安全些,而Git所有程式碼可下載,容易洩露。
(三)Git的缺點[3]
(1)概念過於複雜,命令太混亂,非常不直觀,新手上手比較難;
(2)安全機制不好,每人拷貝一份,程式碼非常不安全;
(3)資料量傳遞大,git使用映象,如果是專案圖片視訊多的話,不相關的組員也要去下載;
(4)Git的GUI工具不太理想;
(5)分支合併的歷史很容易搞亂;
(6)版本不相容。
(四)版本控制器(cvs,svn,git等)[4]
版本控制器的歷史:CVS(90年代開發的鼻祖)、SVN(CVS的接班人)、GIT(李納斯開發)
(1)協同管理程式碼,方便多人開發程式碼;
(2)迴歸到以前的任何一個時間點的程式碼處,可以後悔;
(3)方便尋找正確的歷史版本;
(4)有效控制團隊開發中的 程式碼衝突 的問題;
(5)記錄專案組員的具體操作,便於問題排查。
參考文獻:
1.Git的功能:https://jingyan.baidu.com/article/676629976401a154d51b8430.html
2.Git與Svn的五點不同:http://blog.jobbole.com/31444/
3.Git的缺點:https://www.zhihu.com/question/20401926
4.版本控制器:http://blog.sina.com.cn/s/blog_14ecbedb80102x0p8.html
相關文章
- git與svn的區別面試Git面試
- git和SVN的區別?Git
- svn和git的區別Git
- git與svn的區別-小結一下Git
- Git 和 SVN 之間的五個基本區別Git
- GIT和SVN之間的五個基本區別Git
- 『現學現忘』Git基礎 — 2、Git和SVN的區別Git
- Git與GitHub的區別Github
- git merge 與 git rebase的區別Git
- git與svn對比Git
- git log與git reflog區別Git
- git stash save與git stash push區別Git
- 02 SVN 與 Git 的優缺點Git
- Git tag標籤與branch分支的區別Git
- Git與其他版本控制系統的區別Git
- 軟體測試:SVN與Git的差異Git
- Git vs SVNGit
- Git tag標籤與branch分支 區別Git
- Git fetch和git pull的區別Git
- 對比Git 與 SVN,這篇講的很易懂Git
- Git和SVN的對比Git
- svn 遷移到gitGit
- svn遷移到gitGit
- Git Submodules are not SVN ExternalsGit
- "git rm" 和 "rm" 的區別Git
- (轉載)git pull origin master與git pull --rebase origin master的區別GitAST
- Git/Repo/Gerrit區別Git
- Git log 和 Git reflog 區別Git
- svn 遷移到 git 的問題Git
- git checkout 和 git reset 的區別 —— Git 學習筆記 09Git筆記
- git merge和rebase的區別Git
- ??與?:的區別
- git add all和git add .區別Git
- Git中merge和rebase的區別Git
- Git、Repo、Gerrit三者的區別Git
- SVN和Git對比梳理Git
- SVN有任何勝過git的地方嗎?Git
- MySQL的@與@@區別MySql