news 2026/9/6 9:23:21

版本控制实战:Git 与 SVN 从零到精通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
版本控制实战:Git 与 SVN 从零到精通

版本控制是每个软件开发者必须掌握的核心技能,它解决了两个核心痛点:代码版本回溯多人协同开发。本篇博客带你对比学习当今最主流的两大版本控制工具:Git(分布式)与 SVN(集中式),重点掌握 Git 的完整工作流。

一、为什么需要版本控制?

1.1 两大核心目的

版本控制:记录文件每次变更,随时可以回退到历史版本,再也不怕"改崩了找不回来"

多人协同:多个开发者同时修改同一项目,自动合并各自修改,解决代码冲突

没有版本控制的日常:

有了版本控制:只需要一个文件,每次提交自动记录变更历史。

二、Git vs SVN 核心区别

三、Git 四大核心概念

Git的工作流围绕四个区域层层递进:

四、Git 安装与首次配置

Git 官网:Git

  • Windows 下载安装包一路Next(勾选添加到PATH)

  • Linux:sudo apt install git

  • Mac:brew install git

4.1 用户身份配置(必须!)

每次提交代码都会记录"是谁提交的",所以需要配置用户名和邮箱。

全局用户(针对电脑上所有 Git 项目)

  • 配置文件位置:

    • Windows:C:\Users\Administrator\.gitconfig

    • Linux/Mac:~/.gitconfig

局部用户(只针对当前项目,优先级 > 全局)

配置文件位置:项目目录/.git/config

五、Git 基础工作流(本地仓库)

5.1 初始化仓库:git init

将一个普通文件夹变成Git管理的项目,生成隐藏目录.git(里面是Git所有数据,不要手动删除)。

5.2 查看状态:git status

Git最常用的命令,随时掌握当前仓库的情况。

输出信息解读:

5.3 提交三部曲

第一步:git add — 工作区 → 暂存区

撤销 add(从暂存区撤回到工作区)

第二步:git commit — 暂存区 → 本地仓库

第三步:查看提交日志

5.4 撤销本地修改(工作区还没 add)

5.5 版本穿越:git reset

随时回到历史任何一个版本!

⚠️ 注意:--hard会丢弃所有未提交的修改!如果回到旧版本后想再回来,用git reflog查找新版本的版本号再 reset 回去。

六、分支管理(Git 灵魂功能)

6.1 什么是分支?

分支就是一条独立的开发线。典型工作模式:

  1. 项目初始只有一条主分支master(或main),包含稳定可发布的代码

  2. 从主分支创建子分支,子分支内容完全复制自主分支

  3. 在子分支上开发新功能/修复bug,完全不影响主分支

  4. 功能开发测试完成后,合并回主分支

6.2 分支常用命令

⚠️合并冲突:当两个分支修改了同一文件的同一行时,Git无法自动合并,会报 conflict。此时需要人工打开冲突文件,找到<<<<<<<=======>>>>>>>标记的区域,手动选择保留谁的代码,改完后git add . && git commit完成合并。

七、远程仓库(多人协作核心)

7.1 远程仓库选择

7.2 本地仓库关联远程仓库

在Gitee/GitHub创建一个空仓库后,会给出关联命令:

7.3 多人协作典型工作流

  1. 每人从master创建自己的功能分支git switch -c feature-xxx

  2. 在自己分支开发,频繁commit,频繁push到远程自己的分支

  3. 开发完成后,发起 Pull Request (PR) / Merge Request (MR):请求把自己的分支合并进master

  4. Code Review(代码审查):同事审查你的代码,通过后合并

  5. 合并后删除功能分支,同步最新master:git switch master && git pull

八、Git 命令全景速查

九、SVN 快速入门(补充)

SVN是集中式版本控制,所有版本集中在中央服务器,本地没有完整仓库。

9.1 核心命令对比 Git

9.2 SVN工作流(与Git对比)

十、编辑器自带 Git 插件(可视化操作)

除了命令行,现代编辑器/IDE几乎都内置了友好的Git图形化功能,不需要记命令:

总结

版本控制不是一次性学会的,需要在真实开发中不断练习。建议从今天开始,你写的所有代码项目都用Git管理起来,哪怕是个人学习项目。坚持几个月,你就会对它烂熟于心。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/6 9:22:24

计算机一级考试备考全攻略:知识点汇总PDF的高效使用与实操技巧

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 9:21:05

Jetson Orin外设接口冲突?读懂Virtual Channel Driver与VCD配置

如果你手头有一块NVIDIA Jetson Orin开发套件&#xff0c;并且曾经在摄像头、显示器、PCIe扩展卡之间抢引脚、改设备树、重启到怀疑人生&#xff0c;那你一定懂我说的“功能多但接口不够用”的尴尬。Virtual Channel Driver这个名词&#xff0c;放在Jetson的上下文里&#xff0…

作者头像 李华
网站建设 2026/9/6 9:20:22

Kit:Claude Code精简替代,命令行AI编程节省token利器

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 9:18:38

ICEx LivePerformance:AI实时音乐生成工具的核心技术与应用

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 9:18:12

不用ComfyUI,Python本地部署MiniMax H3视频生成模型最小路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/6 9:15:54

开发板串口找不到?从设备节点原理到排查实战全解析

很多朋友第一次把开发板&#xff08;不管是ESP32、STM32还是全志T113&#xff09;通过USB线接到Ubuntu主机上&#xff0c;满心欢喜地敲下ls /dev/ttyUSB0&#xff0c;结果系统回你一句No such file or directory。这种问题我几乎每周都会在群里看到一次&#xff0c;而且十有八九…

作者头像 李华