重新学习 Git:从版本控制系统说起

准备重新学习一遍git,查漏补缺,一起学习进步。

1. 什么是版本控制系统(VCS)?

版本控制系统(Version Control System, VCS)是一种用于追踪文件变更、管理历史版本、支持多人协作开发的工具。它的核心价值在于解决三大痛点:

  • 文件修改混乱(改来改去不知道哪个是最新/最好的)
  • 历史记录丢失(删了重要内容却无法找回)
  • 多人协作冲突(同事覆盖了你的代码,你覆盖了他的设计)

简而言之,你可以把 VCS 想象成一个自动存档 + 时光机。

举个例子:

你正在写一篇作文或者文章。如果没有 VCS,你可能会这样操作:

  • "作文-初稿.doc"
  • "作文-修改1.doc"
  • "作文-修改2-加结尾版.doc"
  • "作文-最终版-真的最终版.doc"

最后你面对一堆文件,根本分不清哪一版最好,还容易误删。

而有了版本控制系统,它会自动帮你:

  • 记录每一次修改的内容和时间
  • 标注是谁做了这次更改
  • 允许你一键回退到任意历史版本
  • 在多人协作时智能合并不同人的修改,避免互相覆盖

总结一句话 :VCS 让你安全地记录变化,方便回溯和协作。

虽然程序员最常用它管理代码,但其实任何文件(文档、设计稿、论文、配置文件等)都可以用 VCS 管理。


2. 集中式 vs 分布式:两种 VCS 架构

版本控制系统主要分为两类:集中式 (Centralized) 和 分布式 (Distributed)。它们最大的区别在于:历史记录存在哪里?能不能在没网的时候工作?


集中式版本控制系统(CVCS)

代表工具:SVN(Subversion)

类比:图书馆借书

  • 所有书籍(代码 + 完整历史)都存放在中央服务器(图书馆)。
  • 你要看书,必须联网去"借"最新版本。
  • 看完要"还"回去,才能让别人看到你的修改。
  • 如果图书馆关门了(服务器宕机)或路上封路了(断网),你就既不能借书,也不能还书。

特点:

  • ✅ 结构简单,权限管理集中
  • ❌ 严重依赖网络
  • ❌ 单点故障风险高(服务器一崩,全员停工)
  • ❌ 本地通常只有当前版本,看不到完整历史

就像班级群里共享一个在线文档------所有人围着同一个文件操作,稍不注意就覆盖别人的内容。


分布式版本控制系统(DVCS)

代表工具 :Git

当你参与一个 Git 项目时,你会通过 git clone 命令完整复制整个仓库到本地,包括:

  • 当前所有文件
  • 全部历史版本
  • 每次提交的作者、时间、修改内容

这意味着:

  • ✅ 无需网络也能工作:你可以在无网环境里反复提交、创建分支、对比版本。

    • 小故事:现在国内信号覆盖广,很少出现这种断网情况,没网的环境还工作嘛?确实有些保密企业不能联网,还记得刚毕业第一份工作,第一个月去客户拉单晶硅车间,就要上交手机,电脑断网,电气同事向日葵被ban,懂的都懂(゚∀゚)。
  • ✅ 完整备份:每个协作者的电脑都是一份完整备份,不怕服务器丢失数据

  • ✅ 灵活协作 :改好了再联网,用 git push把你的成果同步到远程仓库(如 GitHub、GitLab)

相关推荐
小此方8 小时前
「插曲:Git」标签管理篇:理解Tag标签、为指定提交打标签、查看标签详情与附注标签
git
Madison-No79 小时前
多语言聊天大模型--测试报告
linux·git·python·selenium·jmeter·自动化·postman
小此方9 小时前
「插曲:Git」多人协作篇:远程分支创建与关联、多人协作冲突解决、Feature分支开发与合并、git remote prune清理失效分支
git
可乐ea11 小时前
Git 基础设施重建:智能体规模开发下的读写解耦
大数据·git·elasticsearch·分布式存储·git基础设施·智能体规模开发·读写解耦
信可维14 小时前
AI 说「改完了」怎么确认真改完了:git diff + 测试 + 一张验收表的 3 步复核
人工智能·git
Sun子矜15 小时前
Git+Gitee 新手教程精简归纳版
git·gitee
亿道电子Emdoor16 小时前
【Perforce】Klocwork-kwgcheck图形化界面无法打开如何解决
git·python·github
小此方2 天前
「插曲:Git」企业规范篇:DevOps开发模型、Git Flow五类分支设计与测试/预发布/生产环境Bug修复及Hotfix紧急发布流程
git·bug·devops
溪语流沙2 天前
【Web全栈进阶】JWT无状态认证:签发、校验、刷新
前端·git·python·github
OsDepK2 天前
osgit纯图形化git版本管理工具,多人开发团队协作工具,支持Mac与Windows
git