Git和GitHub是啥?咋用?一文吃透核心概念+AI实操
摘要: 本文基于B站@技术爬爬虾的42分钟完整教程,系统梳理Git与GitHub的核心概念、分区模型、协作流程及AI实操方法,适合初学者和想升级工作流的开发者。
关键词: Git教程、GitHub入门、版本控制、AI编程、Git核心概念、分支管理、开源协作
目录
- 一、为什么AI时代更该学Git?
- 二、Git是什么:一个论文版本管理的故事
- 三、环境准备:装好Git、VSCode和AI Agent
- 四、Git核心操作详解
- 五、Git四分区模型:一张图搞懂数据流
- 六、GitHub实战:从绑定到协作
- 七、GitHub多人协作与开源贡献
- 八、Git进阶操作:Cherry-pick、Stash、Rebase
- 九、传统Git学习 vs AI时代Git学习:多维度对比
- 写在最后
一、为什么AI时代更该学Git?
很多人觉得:AI都能帮我写代码了,Git还有必要学吗?
恰恰相反。
事实是,很多AI Agent的核心功能,都是直接围绕Git来运行的。Codex、Claude Code这类AI编程工具,在初始化项目、创建分支、提交代码、处理冲突的时候,底层操作的全是Git。
换句话说:Git是AI时代的基本功,不是可选项。
好消息是:在AI时代,我们不再需要死记硬背一大堆Git命令,只需要掌握Git和GitHub的几个核心概念,就可以直接用自然语言指挥AI完成各种操作。
二、Git是什么:一个论文版本管理的故事
2.1 从写论文说起
各位写过论文的同学一定有这种经历:论文写了第一版、第二版、第三版、定稿版、最终版、打死不改最终版。我们小心翼翼地保存好论文的每个版本,就是为了应对各种突发情况。
这种保存了多个历史版本的操作,就是最原始的版本控制。
2.2 Git的定义
- Git:一个开源免费的软件,功能是版本控制
- Git仓库(Repository):被Git管理的文件夹
- 提交(Commit):版本控制的基本单元,每次commit保存仓库此时状态的完整快照
- 提交历史:随着commit越来越多,会形成一条可回溯的历史链路
2.3 本地仓库 vs 远程仓库
| 概念 | 说明 |
|---|---|
| 本地仓库(Local Repository) | 运行在你自己电脑上的Git仓库 |
| 远程仓库(Remote Repository) | 托管在服务器上的Git仓库,用于备份、分享和协作 |
| GitHub | 免费提供远程仓库的网站,全球最大的代码托管与协作平台 |
补充: 除了GitHub,还有GitLab、Bitbucket等远程仓库服务。学会了GitHub,另外两个也能轻松上手。
三、环境准备:装好Git、VSCode和AI Agent
3.1 安装Git
Windows系统:
- 前往Git官网,下载安装包
- 选择x86 64位,一路点击下一步完成安装
Mac系统:
- 打开应用程序 → 终端
- 输入命令:
xcode-select --install(安装Mac系统的命令行工具包,其中包含Git) - 验证安装:输入
git --version,成功打印版本号即完成
3.2 安装VSCode
前往VSCode官网,根据操作系统下载对应安装包,一路点击下一步完成安装。
3.3 注册GitHub账号
访问GitHub网站,右上角点击 Sign up 注册账号。如果遇到网络访问问题,可参考相关配置教程。
3.4 AI Agent绑定Git与GitHub
这一步是AI时代的关键操作——用AI帮你完成Git初始化和GitHub推送。
以Codex为例:
- 创建一个空白文件夹
- 进入Codex,选择该文件夹作为项目目录
- 输入提示词:“把这个文件夹初始化成Git项目,并且推送到GitHub上面”
- AI会要求你提供远程仓库地址
- 在GitHub上创建新仓库,获取地址
- 将地址粘贴给Codex,完成授权绑定
绑定完成后,后续所有Git操作都可以用自然语言指挥AI完成。
四、Git核心操作详解
4.1 仓库初始化与.gitignore
git init: 将当前文件夹初始化为Git仓库,文件夹下会生成一个 .git 子目录,存放版本控制信息。
.gitignore文件: 声明哪些文件不被Git跟踪。
# 常见忽略项
.env # 忽略敏感配置文件
node_modules/ # 忽略依赖目录
用AI初始化项目时,
.gitignore文件会自动创建,非常省心。
4.2 提交(Commit)与历史管理
每次提交相当于给仓库拍一张快照。在VSCode或Claude Code中,修改文件后执行提交操作,填写Commit Message(提交摘要)。
查看提交历史: 可以查看每次提交的文件改动详情。
提交ID(Commit ID / Hash): 每次提交生成唯一哈希值,分为长ID和短ID,用于精确定位历史版本。
4.3 三种"后悔药":版本回退
| 操作 | 效果 | 适用场景 |
|---|---|---|
| Discard Changes | 放弃未提交的更改 | 本地还没commit,想反悔 |
| git reset | 强制回退到某次提交 | 单人分支或未推送的提交,有风险 |
| git revert | 生成反向提交,撤销指定提交 | 多人协作分支,安全 |
4.4 分支(Branch)管理
分支代表一条独立的开发线。默认主干分支为 main 或 master。
核心操作:
- 基于主干创建新分支 → 在新分支上修改 → 合并(Merge)回主干 → 删除已合并的分支
- 分支间代码隔离,不同开发者或AI Agent可以在独立线上工作
HEAD指针: HEAD指向当前所在的提交。当HEAD直接指向某次历史提交(而非分支末尾)时,称为**分离头指针(Detached HEAD)**状态——此时修改并提交,新提交不属于任何分支,容易丢失。
4.5 Worktree:并行开发利器
Git Worktree可以为同一仓库的不同分支创建独立的工作目录文件夹。允许在不同文件夹中并行开发、测试不同功能,互不干扰,完成后合并回主干。
4.6 合并冲突(Merge Conflict)解决
当两个分支修改了同一文件的同一行时,会产生合并冲突。
AI辅助解决: AI可以展示冲突内容并提供选项(保留哪个版本或合并两者),由用户决策。
五、Git四分区模型:一张图搞懂数据流
这是Git最重要的理论基础,理解了它,所有命令就都通了。
┌──────────────┐ git add ┌──────────────┐ git commit ┌──────────────────┐
│ 工作区 │ ──────────→ │ 暂存区 │ ──────────→ │ 本地仓库 │
│ (Working Dir) │ │ (Staging Area) │ │ (Local Repo) │
└──────────────┘ └──────────────┘ └────────┬─────────┘
│
│ git push
▼
┌──────────────────┐
│ 远程仓库 │
│ (Remote Repo) │
└──────────────────┘
四分区同步操作:
| 操作 | 方向 |
|---|---|
git clone |
远程 → 本地仓库 + 工作区 |
git add + git commit |
工作区 → 暂存区 → 本地仓库 |
git push |
本地仓库 → 远程仓库 |
git pull(fetch + merge) |
远程仓库 → 本地仓库 + 工作区 |
提示: VSCode中默认会合并add和commit操作。也可以手动选择文件添加到暂存区。
六、GitHub实战:从绑定到协作
6.1 绑定远程仓库的两种方法
方法一:git clone(远程到本地)
- 在GitHub上创建新仓库
- 在VSCode中克隆仓库
- 本地修改后推送(Push)到远程
方法二:先本地初始化,再推送
- 初始化本地文件夹为Git仓库
- 提交后通过"Publish"按钮发布到GitHub
- 选择公开或私有仓库
6.2 同步远程改动
远程直接修改后,本地可以通过 Pull 拉取最新内容。
6.3 GitHub网站实用功能
| 功能 | 说明 |
|---|---|
| Star | 点赞收藏,类似"喜欢" |
| Fork | 复制项目到个人名下 |
| Issues | 问题讨论区 |
| Releases | 发布版本 |
| Codespace | 浏览器中创建远程开发环境 |
实用快捷键:
/:打开搜索t:文件搜索.:打开网页版VSCode
七、GitHub多人协作与开源贡献
7.1 为开源项目贡献代码(外部贡献者)
标准流程五步走:
- Fork 项目到个人名下
- Clone 自己名下的项目到本地
- 创建功能分支 进行修改
- Push 修改到个人仓库
- 创建Pull Request(PR) 向上游项目提交合并请求
PR本质上是合并分支的提案,需要项目维护者审核(Code Review)通过后才能合并。
7.2 内部协作者流程
管理员直接添加协作者(Collaborator),协作者拥有直接推送代码的权限,无需Fork。后续PR流程相同。
7.3 PR前的必要准备
在创建PR之前,必须先同步母项目最新代码,否则可能产生冲突。AI可以辅助合并上游代码并处理冲突。
八、Git进阶操作:Cherry-pick、Stash、Rebase
8.1 Cherry-pick:选择性合并
只合并某个特定提交,跳过其他。
比喻: 好比做了一桌子菜,有蔬菜、主食、肉类三道提交。你只想合并蔬菜和主食,跳过肉类——cherry-pick两道就行。
8.2 Stash:临时存储
场景:正在开发中,突然需要紧急切分支修bug。用Stash临时保存当前未完成的工作,切分支处理完后恢复。
8.3 Rebase:变基
将当前分支的提交"重新播放"在目标分支的最新提交之后,使历史记录呈线性,更清晰。
Rebase vs Merge:
- Rebase:历史更清晰,线性排列
- Merge:保留分支信息,适合多人协作
⚠️ Rebase后需要强制推送,且不适用于多人协作分支。
九、传统Git学习 vs AI时代Git学习:多维度对比
| 维度 | 传统方式 | AI时代方式 |
|---|---|---|
| 学习重点 | 记忆具体命令(git add/commit/push) | 理解核心概念(提交、分支、合并、冲突) |
| 操作方式 | 手动敲命令行 | 自然语言指挥AI执行 |
| 出错处理 | 查文档、搜Stack Overflow | AI展示错误并提供解决方案 |
| 学习曲线 | 陡峭,命令繁多 | 平缓,概念驱动 |
| 效率 | 依赖熟练度 | 得意忘言,AI执行速度极快 |
| 适用人群 | 所有开发者 | 所有开发者(尤其初学者) |
核心理念是四个字:得意忘言。 得其意,忘其言——掌握了意思,具体的命令不需要记。
写在最后
Git和GitHub是现代软件开发的基础设施,也是AI时代Agent协作的核心骨架。不管你用的是Codex、Claude Code还是其他AI编程工具,底层都离不开Git。
不需要死记硬背命令,但核心概念一定要懂。 提交、分支、合并、冲突、四分区模型——这些搞清楚了,AI就是你最好的Git操作员。
附:整理这篇文章时,我用了一个叫 Ai好记 的工具辅助——把B站上的42分钟教程视频导入,AI自动生成带时间戳的逐段转录和结构化大纲,省了大量反复回看和整理的时间。如果你经常需要消化技术视频教程,这个工具挺实用的。
如果这篇文章对你有帮助,欢迎点赞、收藏、评论👇 有Git使用问题也可以在评论区交流。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)