svn和git哪個更省空間?我們知道,數字IC的開發是一群研發工程師圍繞着RTL代碼幹活的過程,代碼的叠代動辄成千上萬個版本對于沒接觸過項目的新手,不知道想過這個問題沒有:如何保證大家修改過的代碼實時同步更新到每一個人手裡呢?,今天小編就來聊一聊關于svn和git哪個更省空間?接下來我們就一起去研究一下吧!
我們知道,數字IC的開發是一群研發工程師圍繞着RTL代碼幹活的過程,代碼的叠代動辄成千上萬個版本。對于沒接觸過項目的新手,不知道想過這個問題沒有:如何保證大家修改過的代碼實時同步更新到每一個人手裡呢?
版本控制系統就是一種用于多人協同開發的技術,可以管理我們對文件、目錄或工程等内容的修改曆史,方便查看更改曆史記錄,還可以恢複以前的版本。
目前常用的版本控制系統有兩種,集中化的版本控制和分布式版本控制。
1 svn屬于集中式的版本控制系統
版本庫集中存放在中央repository,這個repository像一個文件服務器,它會記住每一次用戶提交的文件改動,所以用過可以查看文件的變動曆史,也可以将文件恢複到之前的版本。新手開始幹活了,用的都是個人電腦,所以要先從中央repository獲取最新的版本,然後開始幹活,幹完活了,再把自己的文件修改上傳給中央repository,生成新的版本。集中式版本控制系統必須聯網才能工作,局域網中速度還行,但是在互聯網環境下,網速通常比較慢。
repository(源代碼庫):源代碼統一存放的地方,用戶提取、提交、更新代碼的地方
checkout(提取):剛開始工作時,你需要從repository checkout一份
commit(提交):工作對代碼進行了修改,你需要将修改的文件Commit到repository
update (更新):别人也會提交新代碼到repository, Update一下你就可以和repository上的源代碼同步了
開發流程大緻是這樣:剛接入項目,svn co xxx,checkout源代碼庫,就可以開始和同事協同開發了;第二天,同事昨天做了一些文件修改,為了保持同步,svn up xxx,update獲取最新的代碼;工作了幾天,你發現了一些bug,對相關文件做修改并調試成功了,這時候svn ci xxx,将修改的文件提交至repository中,同事就可以看到你的修改了。如果你想在版本庫添加新的文件用于更新叠代,svn add xxx,将新文件加到repository中。當你和同事同時對一個文件進行了修改,SVN會自動合并兩種修改,但是如果修改的是同一行,就會報conflict沖突提示,這時候就需要你們double check文件了。
常用命令:
svn add 添加文件、目錄或符号鍊
svn co 從版本庫取出一個工作拷貝
svn ci 将修改從工作拷貝發送到版本庫
svn del 從工作拷貝或版本庫删除一個項目
svn diff 比較兩條路徑的區别
svn help 幫助
svn info 打印路徑的信息
svn log 顯示提交日志信息
svn merge 應用兩組源文件的差别到工作拷貝路徑
svn resolved 删除工作拷貝文件活目錄的“沖突”狀态
svn revert 取消所有的本地編輯
svn up 更新本地的工作拷貝
2 git則是分布式的版本控制系統
沒有中央repository,在每一個使用者電腦上就有一個完整的數據repository,因此沒有網絡依然可以使用Git,離線在本地提交,在連網時推送到相應的服務器或者其他用戶本地,除此之外Git還具有強大的分支管理功能
working directory(工作區):在本地電腦裡的工作目錄
staging area(暫存區):index文件中,緩沖提交操作
repository(版本庫):管理所有版本文件的倉庫
工作流程如下:克隆Git資源作為工作目錄;在本地的資源上修改或添加文件;如果他人提交了修改,你可以更新資源;調試通過後提交修改的文件;發現還是有錯誤,可以撤回提交再次修改後提交。git add從工作區提交到暫存區,git commit從暫存區提交到本地倉庫,git push從本地倉庫提交到遠程倉庫。
常用命令:
git clone 拷貝一份遠程倉庫,即下載一個項目
git add 添加文件到暫存區
git commit 将暫存區内容添加到倉庫中
git checkout 切換分支或恢複工作樹文件
git pull 下載遠程代碼并合并
git push 上傳遠程代碼并合并
git status 查看倉庫當前狀态,顯示有變更的文件
git diff 比較文件的不同
git reset 回退版本
git rm删除工作區文件
git mv 移動或重命名工作區文件
git init 初始化倉庫
git log 查看曆史提交記錄
git fetch 從遠程獲取代碼庫
兩者特性對比:
小結:
Git和SVN都是目前主流的版本控制系統。Git可能更難壓縮和存儲二進制文件,但它可以離線使用。分支和合并支持也被認為是Git的優勢所在。SVN具有全局的版本号,而Git則沒有。在磁盤空間存儲方面,SVN和Git存儲庫之間幾乎相等。但不管怎樣,用哪個還得是取決于你的公司呀
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!