0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

sanyue7758 来源:ICer消食片 作者:ICer消食片 2022-10-14 10:00 次阅读

我们知道,数字IC的开发是一群研发工程师围绕着RTL代码干活的过程,代码的迭代动辄成千上万个版本。

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

对于没接触过项目的新手,不知道是否想过这个问题:如何保证大家修改过的代码实时同步更新到每一个人手里呢?

版本控制系统就是一种用于多人协同开发的技术,可以管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,还可以恢复以前的版本。

目前常用的版本控制系统有两种,集中式的版本控制和分布式版本控制

1.集中式的版本控制系统:SVN

版本库集中存放在中央repository,这个repository像一个文件服务器,它会记住每一次用户提交的文件改动,所以用过可以查看文件的变动历史,也可以将文件恢复到之前的版本。新人开始干活了,用的都是个人电脑,所以要先从中央repository获取最新的版本,然后开始干活,干完活了,再把自己的文件修改上传给中央repository,生成新的版本。集中式版本控制系统必须联网才能工作,局域网中速度还行,但是在互联网环境下,网速通常比较慢。

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

repository(源代码库):源代码统一存放的地方,用户提取、提交、更新代码的地方

checkout(提取):刚开始工作时,你需要从repository checkout一份

commit(提交):工作对代码进行了修改,你需要将修改的文件Commit到repository

update (更新):别人也会提交新代码到repository, Update一下你就可以和repository上的源代码同步了

开发流程:刚接入项目,svn co xxx,checkout源代码库,就可以开始和同事协同开发了;第二天,同事昨天做了一些文件修改,为了保持同步,svnup xxx,update获取最新的代码;工作了几天,你发现了一些bug,对相关文件做修改并调试成功了,这时候svn ci xxx,将修改的文件提交至repository中,同事就可以看到你的修改了。

如果你想在版本库添加新的文件用于更新迭代,svn add xxx,将新文件加到repository中。当你和同事同时对一个文件进行了修改,SVN会自动合并两种修改,但是如果修改的是同一行,就会报conflict冲突提示,这时候就需要你们double check文件了。

常用命令

svnadd 添加文件、目录或符号链

svn co从版本库取出一个工作拷贝

svn ci将修改从工作拷贝发送到版本库

svndel 从工作拷贝或版本库删除一个项目

svndiff 比较两条路径的区别

svnhelp 帮助

svninfo 打印路径的信息

svnlog 显示提交日志信息

svnmerge 应用两组源文件的差别到工作拷贝路径

svnresolved 删除工作拷贝文件或目录的“冲突”状态

svnrevert 取消所有的本地编辑

svn up更新本地的工作拷贝

2. 分布式的版本控制系统:Git

没有中央repository,因为在每一个使用者电脑上,就有一个完整的数据repository,就算没有网络依然可以使用Git,离线在本地提交,在连网时推送到相应的服务器或者其他用户本地,除此之外Git还具有强大的分支管理功能。

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

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 从远程获取代码库

两者对比

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

小结

Git和SVN都是目前主流的版本控制系统。Git可能更难压缩和存储二进制文件,但它可以离线使用。分支和合并支持也被认为是Git的优势所在。SVN具有全局的版本号,而Git则没有。在磁盘空间存储方面,SVN和Git存储库之间几乎相等。但不管怎样,用哪个还不得是取决于你的公司





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RTL
    RTL
    +关注

    关注

    1

    文章

    385

    浏览量

    59692
  • 数字IC
    +关注

    关注

    1

    文章

    37

    浏览量

    12504
  • svn
    svn
    +关注

    关注

    0

    文章

    27

    浏览量

    8641

原文标题:你真的懂GIT和SVN吗?

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    计算机网络协议:分散集中式分布式

    一、网络通信模式和网络协议 分散集中式分布式 在早期的计算机网络中,为了有效的利用计算机,一般讲数据通信模型分为分散(Decentralized)、
    的头像 发表于 10-27 14:44 1.3w次阅读
    计算机网络协议:分散<b class='flag-5'>式</b>、<b class='flag-5'>集中式</b>和<b class='flag-5'>分布式</b>

    分布式软件系统

    分布式程序设计语言及其编译(解释)系统、分布式文件系统和分布式数据库系统等。 分布式操作系统负责管理分布式处理系统资源和
    发表于 07-22 14:53

    集中式监测&分布式监测

    ,加之同一采集板卡内部通道的同步性较高,辅以不同采集仪之间利用GNSS时钟模块进行时钟同步,从而整个系统的时钟同步性还是能够得到保障的。我们把这种监测系统设计理念称呼为“集中式监测”(如此定义未必确切
    发表于 09-21 08:40

    集中式IT的可用性

    企业一直承受着改善工作流程、降低成本和更快交付产品的压力。使用远程访问和集中式IT基础设施,组织可以在加速上市时间方面取得巨大飞跃,同时从大幅降低成本中获益。远程工作人员需要快速响应的远程访问,尽管
    发表于 08-31 07:26

    概述隔离电源集中式电源架构

    这里写目录标题概述隔离电源集中式电源架构分布式电源架构:个人理解概述· 集中式电源架构(CPA):效率高,但成本高,PCB占用面积大。· 分布式
    发表于 11-11 07:07

    集中式电源架构和分布式电源架构

    电源,然后经过板上电源模块转换到各个目标电源进行使用,电源架构一般有集中式电源架构和分布式电源架构。1、集中式电源架构即输入电压直接通过隔离DCDC模块转换到各个目标电压,但成本高,占用PCB面积大。2、
    发表于 11-15 07:11

    集中式矩阵,分布式矩阵具有那些特点?

    集中式矩阵因接口有限,输入输出量受限,若想接入更多设备则需要整机更换,而分布式矩阵则可直接将输入端网络化后接入交换机达到扩展目的,因此,分布式矩阵具有更高的扩展性。
    的头像 发表于 11-19 15:38 5762次阅读

    电源架构--集中式电源架构/分布式电源架构

    这里写目录标题概述隔离电源集中式电源架构分布式电源架构:个人理解概述· 集中式电源架构(CPA):效率高,但成本高,PCB占用面积大。· 分布式
    发表于 11-06 17:21 15次下载
    电源架构--<b class='flag-5'>集中式</b>电源架构/<b class='flag-5'>分布式</b>电源架构

    分布式vs.集中式,存储架构如何选?

    存储技术发展日新月异。一方面传统集中式SAN/NAS还在广泛使用,另一方面各类分布式存储产品已纷纷在新兴的海量数据场景中占据市场。如何根据业务需求选择合适的存储架构?分布式存储能否在所有场景都能
    的头像 发表于 05-09 10:08 4409次阅读
    <b class='flag-5'>分布式</b>vs.<b class='flag-5'>集中式</b>,存储架构如何选?

    S7-300 PLC系统的集中式扩展

    总线(PROFIBUS DP或PROFINET IO)通讯的方式,扩展ET200分布式IO。本文将介绍S7-300的集中式扩展。
    的头像 发表于 10-12 16:59 3397次阅读

    分布式发电与集中式发电的区别?

    分布式光伏发电主要是指建设在房屋屋顶或者是小规模容量的,农光互补是建设在地面上,且一般装机容量也很大,属于集中式(如宁夏宝丰能源的农光五补光伏发电,全球装机最大,技术最先进。)
    发表于 04-10 15:02 7066次阅读

    电机集中式绕组和分布式绕组的区别

    什么时候使用集中式绕组,什么时候使用分布式绕组,取决于电机的尺寸和具体应用(depends on the dimensions of the motor and its application)。
    发表于 06-19 10:41 6649次阅读
    电机<b class='flag-5'>集中式</b>绕组和<b class='flag-5'>分布式</b>绕组的区别

    集中式架构的优势有哪些

    在电子化和智能化发展的需要下,传统的分布式架构逐渐进化为域集中式架构,“域”和“域控制器”产生。域控制器最早由博世、大陆、德尔福等 Tier1厂商提出,通过利用处理能力更强的多核 CP
    的头像 发表于 07-13 16:00 1193次阅读

    分布式大屏控制系统与集中式系统的比较

    分布式大屏控制系统与集中式系统在多个方面存在显著差异,具体如下: 架构与传输方式:分布式大屏控制系统采用去中心化的网络架构,每个节点都是一个
    的头像 发表于 01-29 14:28 712次阅读

    分布式储能和集中式储能的区别

    分布式储能和集中式储能是电力系统中两种不同的储能应用模式,它们各自有着独特的优势和应用场景。
    的头像 发表于 04-29 17:36 2849次阅读