0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

集中式的版本控制和分布式版本控制介紹

sanyue7758 ? 來源:ICer消食片 ? 作者:ICer消食片 ? 2022-10-14 10:00 ? 次閱讀

我們知道,數(shù)字IC的開發(fā)是一群研發(fā)工程師圍繞著RTL代碼干活的過程,代碼的迭代動(dòng)輒成千上萬個(gè)版本。

1a813b74-4b0c-11ed-a3b6-dac502259ad0.png

對(duì)于沒接觸過項(xiàng)目的新手,不知道是否想過這個(gè)問題:如何保證大家修改過的代碼實(shí)時(shí)同步更新到每一個(gè)人手里呢?

版本控制系統(tǒng)就是一種用于多人協(xié)同開發(fā)的技術(shù),可以管理我們對(duì)文件、目錄或工程等內(nèi)容的修改歷史,方便查看更改歷史記錄,還可以恢復(fù)以前的版本。

目前常用的版本控制系統(tǒng)有兩種,集中式的版本控制和分布式版本控制。

1.集中式的版本控制系統(tǒng):SVN

版本庫集中存放在中央repository,這個(gè)repository像一個(gè)文件服務(wù)器,它會(huì)記住每一次用戶提交的文件改動(dòng),所以用過可以查看文件的變動(dòng)歷史,也可以將文件恢復(fù)到之前的版本。新人開始干活了,用的都是個(gè)人電腦,所以要先從中央repository獲取最新的版本,然后開始干活,干完活了,再把自己的文件修改上傳給中央repository,生成新的版本。集中式版本控制系統(tǒng)必須聯(lián)網(wǎng)才能工作,局域網(wǎng)中速度還行,但是在互聯(lián)網(wǎng)環(huán)境下,網(wǎng)速通常比較慢。

1ab21aaa-4b0c-11ed-a3b6-dac502259ad0.png

repository(源代碼庫):源代碼統(tǒng)一存放的地方,用戶提取、提交、更新代碼的地方

checkout(提?。簞傞_始工作時(shí),你需要從repository checkout一份

commit(提交):工作對(duì)代碼進(jìn)行了修改,你需要將修改的文件Commit到repository

update (更新):別人也會(huì)提交新代碼到repository, Update一下你就可以和repository上的源代碼同步了

開發(fā)流程:剛接入項(xiàng)目,svn co xxx,checkout源代碼庫,就可以開始和同事協(xié)同開發(fā)了;第二天,同事昨天做了一些文件修改,為了保持同步,svnup xxx,update獲取最新的代碼;工作了幾天,你發(fā)現(xiàn)了一些bug,對(duì)相關(guān)文件做修改并調(diào)試成功了,這時(shí)候svn ci xxx,將修改的文件提交至repository中,同事就可以看到你的修改了。

如果你想在版本庫添加新的文件用于更新迭代,svn add xxx,將新文件加到repository中。當(dāng)你和同事同時(shí)對(duì)一個(gè)文件進(jìn)行了修改,SVN會(huì)自動(dòng)合并兩種修改,但是如果修改的是同一行,就會(huì)報(bào)conflict沖突提示,這時(shí)候就需要你們double check文件了。

常用命令

svnadd 添加文件、目錄或符號(hào)鏈

svn co從版本庫取出一個(gè)工作拷貝

svn ci將修改從工作拷貝發(fā)送到版本庫

svndel 從工作拷貝或版本庫刪除一個(gè)項(xiàng)目

svndiff 比較兩條路徑的區(qū)別

svnhelp 幫助

svninfo 打印路徑的信息

svnlog 顯示提交日志信息

svnmerge 應(yīng)用兩組源文件的差別到工作拷貝路徑

svnresolved 刪除工作拷貝文件或目錄的“沖突”狀態(tài)

svnrevert 取消所有的本地編輯

svn up更新本地的工作拷貝

2. 分布式的版本控制系統(tǒng):Git

沒有中央repository,因?yàn)樵诿恳粋€(gè)使用者電腦上,就有一個(gè)完整的數(shù)據(jù)repository,就算沒有網(wǎng)絡(luò)依然可以使用Git,離線在本地提交,在連網(wǎng)時(shí)推送到相應(yīng)的服務(wù)器或者其他用戶本地,除此之外Git還具有強(qiáng)大的分支管理功能。

1afd77a2-4b0c-11ed-a3b6-dac502259ad0.png

working directory(工作區(qū)):在本地電腦里的工作目錄

staging area(暫存區(qū)):index文件中,緩沖提交操作

repository(版本庫):管理所有版本文件的倉庫

工作流程:克隆Git資源作為工作目錄;在本地的資源上修改或添加文件;如果他人提交了修改,你可以更新資源;調(diào)試通過后提交修改的文件;發(fā)現(xiàn)還是有錯(cuò)誤,可以撤回提交再次修改后提交。git add從工作區(qū)提交到暫存區(qū),git commit從暫存區(qū)提交到本地倉庫,git push從本地倉庫提交到遠(yuǎn)程倉庫。

常用命令

git clone 拷貝一份遠(yuǎn)程倉庫,即下載一個(gè)項(xiàng)目

git add 添加文件到暫存區(qū)

git commit 將暫存區(qū)內(nèi)容添加到倉庫中

git checkout 切換分支或恢復(fù)工作樹文件

git pull 下載遠(yuǎn)程代碼并合并

git push 上傳遠(yuǎn)程代碼并合并

git status 查看倉庫當(dāng)前狀態(tài),顯示有變更的文件

git diff 比較文件的不同

git reset 回退版本

git rm刪除工作區(qū)文件

git mv 移動(dòng)或重命名工作區(qū)文件

git init 初始化倉庫

git log 查看歷史提交記錄

git fetch 從遠(yuǎn)程獲取代碼庫

兩者對(duì)比

1b0c0524-4b0c-11ed-a3b6-dac502259ad0.png

小結(jié)

Git和SVN都是目前主流的版本控制系統(tǒng)。Git可能更難壓縮和存儲(chǔ)二進(jìn)制文件,但它可以離線使用。分支和合并支持也被認(rèn)為是Git的優(yōu)勢所在。SVN具有全局的版本號(hào),而Git則沒有。在磁盤空間存儲(chǔ)方面,SVN和Git存儲(chǔ)庫之間幾乎相等。但不管怎樣,用哪個(gè)還不得是取決于你的公司?





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • RTL
    RTL
    +關(guān)注

    關(guān)注

    1

    文章

    384

    瀏覽量

    59623
  • 數(shù)字IC
    +關(guān)注

    關(guān)注

    1

    文章

    37

    瀏覽量

    12459
  • svn
    svn
    +關(guān)注

    關(guān)注

    0

    文章

    27

    瀏覽量

    8622

原文標(biāo)題:你真的懂GIT和SVN嗎?

文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議:分散集中式分布式

    一、網(wǎng)絡(luò)通信模式和網(wǎng)絡(luò)協(xié)議 分散集中式分布式 在早期的計(jì)算機(jī)網(wǎng)絡(luò)中,為了有效的利用計(jì)算機(jī),一般講數(shù)據(jù)通信模型分為分散(Decentralized)、
    的頭像 發(fā)表于 10-27 14:44 ?1.3w次閱讀
    計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議:分散<b class='flag-5'>式</b>、<b class='flag-5'>集中式</b>和<b class='flag-5'>分布式</b>

    分布式軟件系統(tǒng)

    、分布式程序設(shè)計(jì)語言及其編譯(解釋)系統(tǒng)、分布式文件系統(tǒng)和分布式數(shù)據(jù)庫系統(tǒng)等。 分布式操作系統(tǒng)負(fù)責(zé)管理分布式處理系統(tǒng)資源和
    發(fā)表于 07-22 14:53

    集中式監(jiān)測&分布式監(jiān)測

    ,加之同一采集板卡內(nèi)部通道的同步性較高,輔以不同采集儀之間利用GNSS時(shí)鐘模塊進(jìn)行時(shí)鐘同步,從而整個(gè)系統(tǒng)的時(shí)鐘同步性還是能夠得到保障的。我們把這種監(jiān)測系統(tǒng)設(shè)計(jì)理念稱呼為“集中式監(jiān)測”(如此定義未必確切
    發(fā)表于 09-21 08:40

    集中式IT的可用性

    企業(yè)一直承受著改善工作流程、降低成本和更快交付產(chǎn)品的壓力。使用遠(yuǎn)程訪問和集中式IT基礎(chǔ)設(shè)施,組織可以在加速上市時(shí)間方面取得巨大飛躍,同時(shí)從大幅降低成本中獲益。遠(yuǎn)程工作人員需要快速響應(yīng)的遠(yuǎn)程訪問,盡管
    發(fā)表于 08-31 07:26

    概述隔離電源集中式電源架構(gòu)

    這里寫目錄標(biāo)題概述隔離電源集中式電源架構(gòu)分布式電源架構(gòu):個(gè)人理解概述· 集中式電源架構(gòu)(CPA):效率高,但成本高,PCB占用面積大?!?分布式
    發(fā)表于 11-11 07:07

    集中式電源架構(gòu)和分布式電源架構(gòu)

    電源,然后經(jīng)過板上電源模塊轉(zhuǎn)換到各個(gè)目標(biāo)電源進(jìn)行使用,電源架構(gòu)一般有集中式電源架構(gòu)和分布式電源架構(gòu)。1、集中式電源架構(gòu)即輸入電壓直接通過隔離DCDC模塊轉(zhuǎn)換到各個(gè)目標(biāo)電壓,但成本高,占用PCB面積大。2、
    發(fā)表于 11-15 07:11

    集中式矩陣,分布式矩陣具有那些特點(diǎn)?

    集中式矩陣因接口有限,輸入輸出量受限,若想接入更多設(shè)備則需要整機(jī)更換,而分布式矩陣則可直接將輸入端網(wǎng)絡(luò)化后接入交換機(jī)達(dá)到擴(kuò)展目的,因此,分布式矩陣具有更高的擴(kuò)展性。
    的頭像 發(fā)表于 11-19 15:38 ?5712次閱讀

    電源架構(gòu)--集中式電源架構(gòu)/分布式電源架構(gòu)

    這里寫目錄標(biāo)題概述隔離電源集中式電源架構(gòu)分布式電源架構(gòu):個(gè)人理解概述· 集中式電源架構(gòu)(CPA):效率高,但成本高,PCB占用面積大?!?分布式
    發(fā)表于 11-06 17:21 ?15次下載
    電源架構(gòu)--<b class='flag-5'>集中式</b>電源架構(gòu)/<b class='flag-5'>分布式</b>電源架構(gòu)

    分布式vs.集中式,存儲(chǔ)架構(gòu)如何選?

    存儲(chǔ)技術(shù)發(fā)展日新月異。一方面?zhèn)鹘y(tǒng)集中式SAN/NAS還在廣泛使用,另一方面各類分布式存儲(chǔ)產(chǎn)品已紛紛在新興的海量數(shù)據(jù)場景中占據(jù)市場。如何根據(jù)業(yè)務(wù)需求選擇合適的存儲(chǔ)架構(gòu)?分布式存儲(chǔ)能否在所有場景都能
    的頭像 發(fā)表于 05-09 10:08 ?4315次閱讀
    <b class='flag-5'>分布式</b>vs.<b class='flag-5'>集中式</b>,存儲(chǔ)架構(gòu)如何選?

    S7-300 PLC系統(tǒng)的集中式擴(kuò)展

    總線(PROFIBUS DP或PROFINET IO)通訊的方式,擴(kuò)展ET200分布式IO。本文將介紹S7-300的集中式擴(kuò)展。
    的頭像 發(fā)表于 10-12 16:59 ?3268次閱讀

    分布式發(fā)電與集中式發(fā)電的區(qū)別?

    分布式光伏發(fā)電主要是指建設(shè)在房屋屋頂或者是小規(guī)模容量的,農(nóng)光互補(bǔ)是建設(shè)在地面上,且一般裝機(jī)容量也很大,屬于集中式(如寧夏寶豐能源的農(nóng)光五補(bǔ)光伏發(fā)電,全球裝機(jī)最大,技術(shù)最先進(jìn)。)
    發(fā)表于 04-10 15:02 ?6804次閱讀

    電機(jī)集中式繞組和分布式繞組的區(qū)別

    什么時(shí)候使用集中式繞組,什么時(shí)候使用分布式繞組,取決于電機(jī)的尺寸和具體應(yīng)用(depends on the dimensions of the motor and its application)。
    發(fā)表于 06-19 10:41 ?6456次閱讀
    電機(jī)<b class='flag-5'>集中式</b>繞組和<b class='flag-5'>分布式</b>繞組的區(qū)別

    集中式架構(gòu)的優(yōu)勢有哪些

    在電子化和智能化發(fā)展的需要下,傳統(tǒng)的分布式架構(gòu)逐漸進(jìn)化為域集中式架構(gòu),“域”和“域控制器”產(chǎn)生。域控制器最早由博世、大陸、德爾福等 Tier1廠商提出,通過利用處理能力更強(qiáng)的多核 CP
    的頭像 發(fā)表于 07-13 16:00 ?1129次閱讀

    分布式大屏控制系統(tǒng)與集中式系統(tǒng)的比較

    分布式大屏控制系統(tǒng)與集中式系統(tǒng)在多個(gè)方面存在顯著差異,具體如下: 架構(gòu)與傳輸方式:分布式大屏控制系統(tǒng)采用去中心化的網(wǎng)絡(luò)架構(gòu),每個(gè)節(jié)點(diǎn)都是一個(gè)
    的頭像 發(fā)表于 01-29 14:28 ?651次閱讀

    分布式儲(chǔ)能和集中式儲(chǔ)能的區(qū)別

    分布式儲(chǔ)能和集中式儲(chǔ)能是電力系統(tǒng)中兩種不同的儲(chǔ)能應(yīng)用模式,它們各自有著獨(dú)特的優(yōu)勢和應(yīng)用場景。
    的頭像 發(fā)表于 04-29 17:36 ?2425次閱讀