版本控制
复习
- 从算法到软件:软件需要长期维护
- 单元测试:修改不应破坏已有功能
- 文件:数据可以长期保存
TL;DR
- 版本控制保存代码变化的历史
- 它让你可以随时回到任意一个过去的状态
- 分支让你安全地尝试修改
- 它是多人协作的基础
正文
软件会被反复修改。这就带来一个问题:改了之后要是改坏了,怎么退回去?多个人同时改,怎么不打架?
解决这些问题的工具,叫版本控制(version control)。
给代码保存历史
版本控制最基本的作用,是给代码的每一次变化留个记录。你可以把它想成一个“无限撤销”的存档系统:
- 每次修改,提交一次,形成一份历史记录
- 任何时候,都能查看“某文件昨天长什么样”“这行是谁、什么时候改的”
- 出了问题,可以回到任意一个过去的版本
有了它,“改坏了回不去”这个噩梦就消失了。每一次修改都是安全的,因为随时可以退回。
分支:安全的试验田
版本控制还有个很强大的能力:分支(branch)。
分支让你从主线“岔”出一条独立的线路,在上面大胆改动,完全不影响主线。改得满意,就把它合并回去;改得不满意,直接丢掉,主线毫发无损。
这让“尝试一个不确定的想法”变得毫无压力:反正搞砸了也不影响别人。先在一个隔离的副本上大胆试,成功了再合入——又一次是“隔离变化”的思路。
协作的基础
版本控制还解决了多人协作的核心难题:
- 谁改了什么:每次提交都带着作者与说明
- 冲突怎么解:两人改了同一处,工具会提示并协助合并
- 如何并行:各人在自己的分支上工作,最后统一合入
可以说,现代软件开发,没有版本控制是无法想象的。 它保存的不只是代码,更是整个团队协作的“历史与秩序”。
思考题 1
版本控制解决了什么问题?
思考题 2
分支为什么能让修改更安全?
小结
知识点
- 版本控制保存代码的变更历史
- 可查看历史、追溯责任、回退版本
- 分支提供隔离的试验空间
- 支持多人协作:记录、合并与冲突处理
参考资料
- Wikipedia(zh):版本控制:记录与管理文件的变更历史
- Wikipedia(zh):分支 (版本控制):从主线分离出的独立开发线
思考题答案(仅供参考)
思考题 1
它保存代码每次变更的历史,让你能查看过去的状态、追溯某行改动的来源、在出问题时回退到旧版本,并为多人协作提供记录、合并与冲突处理的基础。
思考题 2
因为分支是一条独立的开发线,在其上所做的修改不会影响主线。你可以在分支上大胆尝试,成功就合并、失败就丢弃,主线始终不受牵连,因此修改更安全。
协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
封面图
设计师 | 南国微雪