如何对文件进行版本控制

文件版本控制实操:选一套小数对整数的编号方案,在每一页上印出版本、日期与审批人,定义什么算大改,并且始终只保留一份当前副本。

文件版本控制是给一份文件的每一版草稿和每一份已发布副本编号、标注日期并妥善存放的做法,确保有且只有一个版本是当前版本,其余每一版都可识别、已被取代,而不是被删除。

简而言之

  • 草稿版本用小数(0.1、0.2……);正式发布的版本用整数——绝不能反过来。
  • 在每一页的页眉里印出版本、日期和审批人,而不只是写在文件名或文件属性里。
  • 只保留一个权威的当前位置;其他一切引用都链接过去,而不是各自留一份副本。
  • 在第一份文件需要用到这条规则之前,就先书面定好什么算大版本、什么算小版本。
  • QueryChart 的变更日志和比较版本视图能准确显示两个版本之间改了什么,不需要手工记录——见 /features/version-control。

版本号是一种关于信任的声明

两个人编辑同一份文件,却没有编号规则,结果往往一样:一个叫 Policy_v2_FINAL_已审_用这个.docx 的文件,而没有人能确定三份打开的副本里到底哪一份才是当前版本。文件的版本控制靠三个具体决定来解决这个问题,而不是靠一堆带日期的文件名:一套编号方案、一个每页都会标出自身版本的位置,以及一个所有人都当作权威的唯一存放处。

版本控制和变更控制不是一回事,它的范围也比文件控制窄。变更控制是决定一项拟议变更是否获批的机制——影响评估、变更委员会、回滚方案——作为独立流程,见 /zh/guides/如何创建变更控制流程。文件控制则是一份文件所在的完整生命周期,从触发它的申请,到让它保持有效的定期审查,完整介绍见 /zh/guides/如何创建文件控制流程 和 /zh/templates/文件控制流程。本文比这两者都窄:它只是文件控制流程之下运行的编号与可追溯层,而不是要取代它。

QueryChart 让这层编号保持诚实,不需要另外手工维护一份登记表。对图表的每一次编辑都会被记入变更日志,写明经办人和字段;比较版本视图把任意两个版本并排展示,标出确切的改动;还原一个旧版本只是单个动作——这套免费、始终开启的版本历史完整介绍见 /features/version-control。

看一个版本号如何在五条泳道中流转

一份新文件被起草、两轮修改、批准、发布并被取代——版本号在这每一步都会变化。

  1. 草稿诞生时是 0.1

    图表从“新文件起草”开始,文件在被分发之前,“分配初始草稿版本 0.1”就先给它标上一个小数——这是仍在内部评审中、尚未获准使用的草稿的标记。

  2. 每一轮返工都会得到一个新的小数

    “是否需要修改?”把需要返工的草稿经由“递增小版本号”送入“根据意见修改草稿”,然后评审人才会再次看到它——0.1 变成 0.2,于是说“0.3 版的意见”就是在指某一份确切的草稿。

  3. 只有批准这一道门能通向整数

    “提交最终草稿以供审批”和“审批人审查最终草稿”通向“是否批准发布?”——只有“批准”这条分支能到达“分配大版本号 1.0”;“驳回”则回到小版本号的循环里。

  4. 发布是取代,不是删除

    “更新版本历史登记册”是文件形状的行,而不是流程行,随后“发布已批准的版本”和“将前一版本标记为已作废”都会在任何读者打开新副本之前运行完毕——旧编号仍留在登记册里。

  5. 已发布的文件也可以重新开启

    “使用人员访问当前版本”和“发布后是否有变更申请?”说明发布并不是终点:答案为“是”会把文件经由“以下一个版本重新开启该文件”送回评审,答案为“否”则到达“当前版本继续生效”。

运作方式

  1. 定下小数对整数的规则

    书面规定:评审中的草稿用小数——0.1、0.2、0.3——已发布的副本用整数——1.0、2.0。具体规则怎么定不是重点,重点是所有文件都用同一套,包括登记册和每一页的页眉。

  2. 把版本、日期和审批人印在每一页上

    一个只存在于文件名或文件属性里的版本号,一旦有人打印这一页或转发一张截图就会消失。把版本号、生效日期和审批人姓名放进文件本身的页眉或页脚里。

  3. 在需要之前就定义好什么算大版本

    在第一份文件真正用到这条规则之前,写下触发整数进位的条件——是单纯的正式批准,还是批准加上一次实质性的内容重写。团队如果从不统一这一点,最终会出现两份都叫“2 版”的不同文件。

  4. 把编号步骤按顺序录入图表

    打开一张图表,把每个阶段——起草、评审、修改、批准、发布、取代——填进方框文字列,用连线至列把它们连起来。版面是自动生成的,唯一要决定的是版本号流转的顺序。

  5. 指定唯一的权威位置

    选定当前版本存放的那一个地方——受控文件夹、文件管理系统,或一个实时的 QueryChart 链接——让其他一切引用都指向它,而不是各自留一份副本。如果两份“当前”副本可能互相矛盾,版本号就毫无意义。

  6. 查阅变更日志,而不是去问谁手里是最新版

    打开图表的版本历史,用比较版本准确查看两个版本之间哪个字段变了、谁改的、什么时候改的,而不是手工维护一份平行的变更记录。变更日志和还原功能的运作方式见 /features/version-control。

应避免的错误

  • 永远定不了案的小数版本

    一份卡在 0.7 版、没人愿意拍板定稿的草稿,说明的是批准触发条件没定义清楚,而不是编号方式有问题。要修的是什么条件能升到整数的规则,而不是小数的位数。

  • 谁也看不见的版本号

    版本号只记在一张表格登记册里、文件本身却没有标注,会逼着读者相信自己手上的东西和登记册一致。应该把它印在页面上。

  • 两个都被叫做当前版本的位置

    共享盘上的一份和邮件里的一份,只要其中一份被编辑而另一份没有,两者就会立刻走样。选定唯一的权威位置,把其余的锁定或退役。

  • 跟文件放在一起、手工维护的变更记录

    一份手工维护的“v3 改了什么”清单,只要有人漏记一条,就会和文件本身脱节。QueryChart 的变更日志会自动记录每一次字段改动,所以应该去比较两个版本,而不是去相信一条备注。

创建你自己的受版本控制的文件

把文件版本控制示例打开成你自己的图表,设定你的编号方案,让变更日志从此记录每一次改动。

创建你自己的受版本控制的文件

相关指南

常见问题

什么是文件版本控制?

文件版本控制是给一份文件的每一版草稿和每一份已发布副本分配一个独立编号的做法,让任何拿到副本的人都能判断它有多新、和曾经存在过的每一份副本是什么关系。它通常把仍在评审中的草稿用小数方案标注,正式批准过的版本用整数标注,而且要求每一页都带上这个编号,而不是把它留在文件名或另一张登记表里。

文件版本控制具体应该怎么做,一步一步来?

在起草任何内容之前先定好编号方案——草稿用小数、已发布副本用整数是常见惯例。在每一页的页眉印上版本、日期和审批人。每份草稿都走同一套评审与批准流程,每返工一轮就递增小版本号,只有正式签字才递增大版本号。只保留一个权威的当前位置,被新版本取代的旧版本只能标记,绝不删除。

对一份文件来说,版本控制和修订控制有什么区别?

实践中,这两个术语对一份文件来说说的是同一件事——一套给连续副本编号的方案——大多数质量体系都把它们当作可以互换的说法。真正出现区别的场合是在软件和工程语境下,那里“修订控制”有时暗指完整的改动集历史,而“版本控制”更松散地只指编号标签本身。选定一个词并保持一致使用,不要把一个并不存在的区别当真;完整对比见 /zh/guides/修订控制与版本控制的区别。

如果已经有了版本号,还需要单独的变更记录吗?

如果你的版本号背后已经有东西自动记录了是谁改了哪个字段、什么时候改的,那就不需要。QueryChart 的变更日志对每一次编辑都自动做到这一点,比较版本会把两个版本并排展示并标出差异,所以手工维护的变更记录只是在重复平台已经做过的工作。见 /features/version-control。

本指南所用的模板

文件版本控制模板 — 文件版本控制模板:展示草稿如何以小版本号(0.1、0.2……)经历评审,只有正式批准才获得整数版本号,以及后续修订如何使旧版本作废。

Browse all 流程治理、合规、审计与版本控制指南

文件版本控制: 起草 → 内部评审 → 修订 → 审批 → 发布并生效
如何对文件进行版本控制