• 程序员修炼之道系列 | 版本控制


    虽然时光不能倒流,但撤销键(组合键和undo键)至少可以恢复几分钟前的操作。如果错误发生在上周呢?本期视频为大家推荐一个后悔药——版本控制系统,它的功能远不止于撤销。

    视频地址:https://www.zentao.net/programmer/version-control-80381.html

    版本控制是什么?

    版本控制系统相当于项目的时间机器,它会将所维护的所有文件都保存在一个“仓库”中,主要用于追踪文件的变更。在软件开发过程中,确保由不同的人所编辑的同一文件都得到同步。

    版本控制可以解决这些问题:

    1、版本存储

    使用版本控制系统,软件发布的所有版本和改动细节都会被保存,在正确命名的前提下,团队成员可随时找到之前的任意版本。

    2、协同合作

    在版本控制系统中,团队中每个成员都可以同时编辑同一个文件,自动合并编辑部分,解决合并冲突问题。

    3、备份 

    每一个团队成员都会在本地有一个完整的项目副本,包括整个项目的历史记录。如果某个成员的存储出现问题,恢复需要的所有文件都可以在其他成员的本地仓库中获得。

    4、了解发生了什么

    版本控制系统可以显示当前版本和上一个版本之间的所有修改细节:

    • 这行代码是谁改的?
    • 当前版本中我们修改了多少行代码?
    • 当前版本和上次版本的差异在哪……

    版本控制系统的演进

    1、本地版本控制系统

    描述:采用某种简单数据库来记录文件的历次更新差异。

    优点:不需要对项目频繁复制,避免了项目信息臃肿混乱,难以区分差异的问题

    缺点:无法解决多人协作问题

    代表工具:RCS

    2、集中式版本控制系统

    描述:解决本地版本控制系统的多人协作问题。

    优点:

    • 操作较简单,只需要拉取代码,提交代码;
    • 基本解决多人协作问题,每个人都可以从服务器拉取最新代码同步伙伴的进度;
    • 管理员可轻松控制各开发者的权限;
    • 只需要维护中央服务器上的数据库即可。

    缺点:

    • 提交更新都需联网跟服务器进行交互,对网络要求较高;
    • 风险较大,服务器一旦宕机,所有人无法工作。服务器磁盘一旦损坏,如果没有备份将丢失所有历史数据。

    代表 工具:CVS、SVN

    3、分布式版本控制系统

    描述:解决集中式版本控制系统的缺点。

    优点:

    • 去中心化,从中央服务器拉取下来的是一个完整的版本库;
    • 即使某一台机器宕机,也能找到文件的完整备份。

    代表工具:Git

    如今,借助版本控制工具,版本控制系统的与开发环境集成、赋予管理权限等更多功能已被解锁。一个充满协作、问题追踪、团队交流的更广阔的版本控制领域等我们一起探索。

    更多精彩视频分享:https://www.zentao.net/page/college.html

  • 相关阅读:
    创建型模式(四) 单例模式
    创建型模式(三) 原型模式
    创建型模式(二) 建造者模式
    创建型模式(一) 简单工厂模式、工厂模式与抽象工厂模式
    Django15-分页功能
    Django14-Ajax删除按钮动态效果
    网络day04-配置备份、清除、密码恢复、IOS更新
    网络day03-NTP配置和SMTP配置
    网络day02-设备配置远程登录
    HTML注释
  • 原文地址:https://www.cnblogs.com/zentao/p/15127834.html
Copyright © 2020-2023  润新知