未记录事实核验 · 状态:维护中
记录仅说明核验时间与维护状态,不保证适用于所有环境;使用前请留意正文中的版本、适用条件与风险提示。
warning 适用范围与待维护事项
本篇是学习导航与阶段性自测清单,不是完整操作教程;2—3周及1个月仅为参考安排,团队规范建设还需项目经验与评审。原稿“记忆留存率高5倍”未经核实,不作为效果依据。Git只能追溯已记录的版本,不能保证恢复未提交内容,也不能替代备份或运行环境管理。练习宜使用无敏感信息的测试项目;数据库配置和环境变量不得包含密码、令牌或生产数据,.gitignore不会清除已提交的敏感历史,共享分支上的变基及部署操作须遵循团队规则。
warning 关联材料边界
以下原引用目标缺失或无法唯一确认,已取消跳转并保留提及:Linux基础概念;数据开发规范;SQL。相关素材/延伸说明暂不可用,不能据此声称已经提供配套材料。
Git 学习路线图 - 数据从业者版本控制入门到实战
abstract 路线图概览
- 适用人群:数据分析师、数据开发工程师、数据科学家
- 学习目标:掌握日常数据工作中必须用到的 Git 技能
- 参考周期:可按 2-3 周学习核心内容、1 个月持续练习来安排;实际进度与习惯形成取决于已有基础、投入时间和实践机会
- 前置要求:会用命令行基础操作(参考 Linux基础概念(原引用“Linux基础概念”未能确定有效目标,暂不可跳转))
为什么数据从业者必须学 Git
你有没有遇到过这些情况:
- SQL 脚本改着改着,上线出了 bug,但找不到"改之前"的版本了
- ETL 代码在本地跑得好好的,同事拿去用发现和你的版本不一样
- 做了半天的数据清洗脚本,手抖删掉了一段关键逻辑,Ctrl+Z 不够用
- 团队里每人维护一份"最终版_v3_修改_确认.py",不知道哪个才是真正的最终版
这些痛点,Git 可以通过版本记录和协作流程帮助缓解;但未被记录的改动不保证可恢复,运行环境差异也需要依赖与配置管理配合解决。
对数据从业者来说,Git 不是"可选的加分项",而是专业工作的基础设施。它是你和团队协作的通用语言,是代码安全的保障网,是工作历史的时光机。
学习路径总览
%%{init: {"theme":"base","themeVariables":{"fontFamily":"PingFang SC, -apple-system, Source Han Serif SC, serif","fontSize":"16px","background":"#FDFBF5","primaryColor":"#FDFBF5","primaryTextColor":"#2D2A26","primaryBorderColor":"#6E6A60","secondaryColor":"#E8EFE8","secondaryBorderColor":"#8FA890","secondaryTextColor":"#2D2A26","tertiaryColor":"#FDFBF5","tertiaryBorderColor":"#9A9488","tertiaryTextColor":"#6E6A60","lineColor":"#6E6A60","textColor":"#2D2A26","mainBkg":"#FDFBF5","nodeBorder":"#2D5A3D","clusterBkg":"#F3EEDF","clusterBorder":"#9A9488","edgeLabelBackground":"#FDFBF5"},"flowchart":{"htmlLabels":true,"curve":"basis","padding":20,"nodeSpacing":60,"rankSpacing":70,"useMaxWidth":false},"themeCSS":".node rect, .node polygon, .node circle { stroke-width: 1.5px; } .edgePath .path { stroke-width: 1.5px; } .cluster-label .nodeLabel, .cluster-label foreignObject { color: #2D2A26 !important; } .edgeLabel, .edgeLabel foreignObject { color: #2D2A26 !important; background-color: #FDFBF5; } .edgeLabel rect { fill: #FDFBF5; }"}}%%
flowchart TD
A[版本控制概念\n理解为什么需要Git] --> B[安装与配置\n搭建工作环境]
B --> C[基础操作\n日常工作流]
C --> D[分支管理\n并行开发]
D --> E[远程协作\n团队工作流]
E --> F[冲突解决\n多人协作必备]
F --> G[进阶技巧\n提升效率]
G --> H[数据项目实践\n场景化应用]
style A fill:#e3f2fd
style C fill:#e8f5e9
style E fill:#fff3e0
style H fill:#fce4ec
文档目录
基础入门(必学)
| 文档 | 核心内容 | 预计学习时间 |
|---|---|---|
| [[【技术与工具】/Git/01-版本控制概念 | 01-版本控制概念]] | 为什么用Git、Git vs SVN、数据项目痛点 |
| [[【技术与工具】/Git/02-Git安装与配置 | 02-Git安装与配置]] | 安装、git config、SSH密钥、连接GitHub |
| [[【技术与工具】/Git/03-Git基础操作 | 03-Git基础操作]] | init/clone/add/commit/log/diff,日常工作流 |
团队协作(核心)
| 文档 | 核心内容 | 预计学习时间 |
|---|---|---|
| [[【技术与工具】/Git/04-分支管理 | 04-分支管理]] | branch/merge、Git Flow、数据项目分支策略 |
| [[【技术与工具】/Git/05-远程仓库协作 | 05-远程仓库协作]] | push/pull/fetch、PR 工作流、代码审查 |
| [[【技术与工具】/Git/06-冲突解决 | 06-冲突解决]] | 合并冲突处理、预防最佳实践 |
进阶提升(强烈推荐)
| 文档 | 核心内容 | 预计学习时间 |
|---|---|---|
| [[【技术与工具】/Git/07-Git进阶技巧 | 07-Git进阶技巧]] | stash、rebase、tag、.gitignore |
| [[【技术与工具】/Git/08-数据项目Git实践 | 08-数据项目Git实践]] | SQL管理、ETL代码、大文件处理、目录规范 |
参考手册(随时查阅)
| 文档 | 核心内容 |
|---|---|
| [[【技术与工具】/Git/09-Git常用命令速查 | 09-Git常用命令速查]] |
| [[【技术与工具】/Git/10-GitHub与GitLab使用 | 10-GitHub与GitLab使用]] |
阶段性学习目标
第一周:能独立使用 Git 管理自己的项目
完成后你应该能:
- [ ] 在本地初始化一个 Git 仓库
- [ ] 正确理解暂存区的概念,能用
git add和git commit - [ ] 用
git log查看历史,用git diff对比变化 - [ ] 连接到 GitHub/GitLab 并推送代码
第二周:能参与团队协作项目
完成后你应该能:
- [ ] 创建和切换分支
- [ ] 提交 Pull Request 并处理代码审查意见
- [ ] 解决合并冲突
- [ ] 理解 Git Flow 的基本流程
第三周:形成良好的 Git 工作习惯
完成后你应该能:
- [ ] 用 .gitignore 正确排除不需要版本管理的文件
- [ ] 用 stash 处理临时中断的工作
- [ ] 为数据项目设计合理的分支策略
- [ ] 能起草团队的 Git 协作规范,并结合项目实际经团队评审后试行
数据工作中的 Git 应用场景
%%{init: {"theme":"base","themeVariables":{"fontFamily":"PingFang SC, -apple-system, Source Han Serif SC, serif","fontSize":"16px","background":"#FDFBF5","primaryColor":"#FDFBF5","primaryTextColor":"#2D2A26","primaryBorderColor":"#6E6A60","secondaryColor":"#E8EFE8","secondaryBorderColor":"#8FA890","secondaryTextColor":"#2D2A26","tertiaryColor":"#FDFBF5","tertiaryBorderColor":"#9A9488","tertiaryTextColor":"#6E6A60","lineColor":"#6E6A60","textColor":"#2D2A26","mainBkg":"#FDFBF5","nodeBorder":"#2D5A3D","clusterBkg":"#F3EEDF","clusterBorder":"#9A9488","edgeLabelBackground":"#FDFBF5"},"flowchart":{"htmlLabels":true,"curve":"basis","padding":20,"nodeSpacing":60,"rankSpacing":70,"useMaxWidth":false},"themeCSS":".node rect, .node polygon, .node circle { stroke-width: 1.5px; } .edgePath .path { stroke-width: 1.5px; } .cluster-label .nodeLabel, .cluster-label foreignObject { color: #2D2A26 !important; } .edgeLabel, .edgeLabel foreignObject { color: #2D2A26 !important; background-color: #FDFBF5; } .edgeLabel rect { fill: #FDFBF5; }"}}%%
mindmap
root((Git in\n数据工作))
SQL脚本管理
历史版本追溯
多版本并行开发
审查与审计
ETL代码版本控制
Spark代码管理
Flink作业管理
数据管道版本
配置文件管理
数据库连接配置
调度任务配置
环境变量管理
团队协作
代码审查
知识共享
责任追溯
CI/CD集成
自动化测试
自动部署
质量门禁
学习建议
tip 最有效的学习方式
边学边用。不要只看教程——把你正在做的某个 SQL 脚本项目或 Python 分析项目用 Git 管起来,在真实工作流中练习每一个命令。理论学完立刻上手实操,有助于把概念与实际操作联系起来;原稿“记忆留存率高 5 倍”仅保留为未核实的效果数字示例,不作为学习效果依据或承诺。
note 配套工具推荐
- 命令行:所有操作优先用命令行,理解原理后再用 GUI 工具
- VS Code:内置 Git 支持,可以直观看到文件变更状态
- GitHub Desktop:如果确实不习惯命令行,这是可考虑的 GUI 选项之一
- GitLens(VS Code 插件):查看代码历史、blame 信息的神器
warning 常见误区
很多人学 Git 卡在这里:以为记住所有命令才算会用。实际上你只需要熟练掌握 10 个左右的核心命令,其他的用到时查 09-Git常用命令速查 就够了。
相关知识关联
学习 Git 时,以下知识会帮助你更好地理解:
- Linux基础概念(原引用“Linux基础概念”未能确定有效目标,暂不可跳转) - Git 命令行操作依赖基本的 Shell 知识
- Python - Python 项目是 Git 最常见的应用场景之一
- 数据开发规范(原引用“数据开发规范”未能确定有效目标,暂不可跳转) - 代码规范与版本控制密切相关
- SQL(原引用“SQL”未能确定有效目标,暂不可跳转) - SQL 脚本的版本管理是数据工程师的核心场景
快速导航
- 从零开始 → 01-版本控制概念
- 已有基础,想提升 → 07-Git进阶技巧
- 数据项目实战 → 08-数据项目Git实践
- 忘记命令了 → 09-Git常用命令速查