GitGitHub核心概念

42分钟动画讲解Git与GitHub全流程,从本地仓库到多人协作。AI时代不用背命令,理解概念就能用自然语言操作

GitGitHub核心概念 封面图

核心结论:Git与GitHub已经成为AI时代必学必会的基本功。好消息是,在AI时代我们不再需要死记硬背一大堆Git命令,只需要掌握几个核心概念,就可以直接用自然语言指挥AI完成各种操作。本期基于技术爬爬虾的42分钟动画讲解,带你从零到一吃透Git与GitHub。

一、Git是什么?为什么需要它?

Git是一个开源的版本控制系统。想象一下写论文的经历——第一版、第二版、第三版、定稿版、打死不改最终版……我们小心翼翼保存每个版本,就是为了应对各种突发情况。

但如果一个项目有成百上千个文件,又有成百上千人协同开发,纯人工的方式根本无法负担。Git就是为解决这个难题而生的,它是世界上最多人使用的版本控制系统。

核心概念:Commit(提交)

当一个文件夹被Git管理起来,就变成了一个Git仓库。Git使用**Commit(提交)**作为版本控制的基本单元。每完成一次Commit,Git都保存了一个仓库此时状态的快照。随着Commit越来越多,会形成一条Commit的历史链路,整个仓库都是可回溯的。

两种仓库

类型说明
本地仓库运行在你自己电脑上的Git仓库
远程仓库上传到服务器的备份,可与他人共享代码

GitHub就是全球最大的代码仓库托管与协作平台。全世界的开发者把自己的Git仓库上传到GitHub网站,这个网站就变成了Git仓库的集合——所以叫Git+Hub。

二、Git的三种后悔药

AI时代,我们不需要背命令,但需要理解概念。Git有三种后悔药:

操作行为适用场景
Discard放弃还没有Commit的更改文件改了但还没提交,想撤销
Reset强制回退到某个历史状态单人分支,或改动还没上传到远程仓库
Revert生成反向提交来撤销某次Commit多人协作分支,安全优先

重要原则:在多人协作的分支上,禁止使用Reset(有搞丢代码的风险),应该优先使用Revert。

三、Branch(分支)——并行开发的基石

分支简单来说,就是存储库的不同开发线。默认情况下每个仓库都有一个main(或master)分支,也就是主干分支。

创建分支就是创建一个副本——在Git里是通过指针实现的,不需要拷贝代码。当你在分支上进行代码修改并完成Commit,这些新的提交只对当前分支有效,不会影响主干。

分支的核心操作

  1. 创建分支:基于主干或任何历史提交创建新分支
  2. 切换分支:在不同分支之间来回切换
  3. 合并分支:功能开发完成后,把分支合并回主干(Merge)
  4. 删除分支:合并完成后清理分支

HEAD(头指针)

HEAD一句话总结:当前仓库处于哪一次Commit上。当HEAD不指向任何分支而只指向某次历史提交时,就是"分离头指针"状态——这种状态下最好不要修改代码,容易搞丢。

Worktree(工作树)

本质上是用Git创建一个新分支,然后把新分支的代码完整复制到一个新文件夹。主文件夹和分支文件夹可以并行工作,互不干扰。开发完成后可以轻松合并回主干。

Merge Conflict(合并冲突)

当两个分支修改了同一个文件的同一行代码,Git无法自动确定保留哪个改动。有了AI,解决冲突变得非常简单——AI会给你选项,你可以选择保留任意一个,或两个都保留。

Git分支并行开发示意图

四、Git分区(四区概念)

理解Git的分区模型是掌握Git的关键:

分区说明
工作区(Working Directory)你电脑磁盘上的本地文件夹
暂存区(Staging Area)Commit之前的检查点
本地仓库(Local Repository)Commit后的文件改动的存储地
远程仓库(Remote Repository)GitHub等远端服务器

大部分Git操作的本质,就是从这些分区里互相同步文件。

  • git clone:把远程仓库保存到本地,同时创建本地存储库和本地工作目录
  • git add + git commit:把工作区的改动提交到本地仓库
  • git push:把本地仓库的改动推送到远程仓库
  • git pull:把远程仓库的最新改动更新并合并到本地

为了方便操作,现阶段的Git工具(如VS Code)都淡化了暂存区的概念——点击Commit按钮时,同时执行了add和commit两个命令。

五、GitHub核心功能

仓库页面关键元素

元素说明
Code(代码库)存放整个项目的源代码
README项目介绍,自动展示在代码库下方
Release发布版本信息,含打包好的软件下载
Star类似点赞+收藏,反映项目热度
Fork把项目复制一份到自己的名下
Issue与项目作者讨论(bug报告、功能建议)

GitHub快捷键

快捷键功能
/快速打开GitHub搜索功能
t快速定位到文件搜索栏
l快速定位到某一行代码
?打开快捷键速查表
.打开网页版VS Code
b查看文件的提交历史(Blame)

六、多人协作与开源贡献

场景一:开源项目贡献(Fork模式)

如果你没有权限直接向项目提交代码,需要走Fork模式:

  1. Fork:把开源项目复制一份到自己的名下
  2. 创建分支:在分支上修改代码(不要在主干上直接修改)
  3. Commit + Push:提交并推送到自己的远程仓库
  4. 同步上游:创建PR前,先把母项目的最新改动合并到当前分支,解决冲突
  5. 创建Pull Request:把自己的分支合并进主干分支的提案
  6. Code Review:项目维护者审核代码,提出修改意见
  7. Merge:审核通过后,维护者同意合并

场景二:协作者模式

如果项目管理员把你添加成了协作者,就可以直接往项目的远程仓库Push代码:

  1. 直接拉分支
  2. 提交代码并Push到远程仓库
  3. 创建Pull Request
  4. 管理员审核后合并

GitHub多人协作与PR流程示意图

Cherry-Pick(拣选提交)

从某个分支中挑选特定的提交合并到另一个分支。比如在Feature分支上进行了3次提交,但只想把其中2次合并进主干,就可以使用Cherry-Pick。

Stash(临时存储)

当你在一个分支上写代码写到一半,需要紧急切换到另一个分支处理临时任务时,可以使用Stash把没写完的代码临时存储起来,切换回来后再取出来继续写。

Rebase(变基)

Git的高级操作。从最终效果来看,可以认为Rebase是把一个分支合并进了另一个分支。最大的好处是不会创建Merge Commit记录,让历史树更加干净。

⚠️ 重要警告:经过Rebase操作后,必须使用强制推送(force push)。强制推送只适合单人使用的分支,多人协作分支万万不能使用强制推送,可能会覆盖别人的代码。

七、总结

概念一句话AI时代怎么做
Commit保存仓库快照,形成历史链路每次让AI完成一个小功能就做一次Commit
Branch不同开发线,互不干扰让AI在分支上开发,完成后合并
Merge把分支合并回主干告诉AI"把Feature合并进main"
Reset强制回退历史“把仓库还原到这次提交的状态”
Revert生成反向提交撤销“把这次提交撤销掉”
Cherry-Pick挑选特定提交合并“把这两次提交Cherry-Pick进主干”
Stash临时存储未写完的代码告诉AI需要临时切换分支
Rebase变基,让历史更干净单人分支使用,多人分支禁止

言者所以在意,得意而忘言——在AI时代,我们只需要理解Git操作的本意与原理即可,对具体命令并不需要死记硬背。

本文基于技术爬爬虾视频《Git+Github核心概念大串讲,从零到一全攻略,详细实战教程》整理改写。

← 返回文章列表