Git 版本控制Git
Git 专区记录每次代码改动,需要时可以查看或恢复旧版本
工作区index.html 改好了
git add→
暂存区这次要记的改动
git commit→
本地仓库
git push→
远程仓库GitHub 有副本了
$ git add . && git commit -m "首页能跑了" && git push
代码沿这条流水线走:add 装车、commit 只在本地存档、push 才上云。想把别人的更新拿回来,走反方向的 git pull。
什么时候用
- 初始化仓库后,用 add 选择改动,再用 commit 记录版本init 初始化→add 选择改动→commit 记录版本
- 每完成一个可以验证的小改动,就保存一次提交每个稳定小步都可以成为一次提交
- 出现问题时,可以回到之前提交的稳定状态改动出现问题时可以回到之前的提交
- 需要协作或远端备份时,再把提交推到 GitHub💻 本地仓库git push →☁️ GitHub
什么时候不用
- 长时间不提交,出现问题后难以恢复到稳定状态长时间没有提交记录,难以恢复稳定版本
- 提交说明含义不清,之后无法判断每个版本做了什么● 111
● 改了下
● asdf说明含义不清,之后难以定位版本 - 遇到问题就删除项目目录,连同本地历史一起丢失🗂my-first-page🗑 删除删除项目目录会同时丢失本地历史
- 把包含真实密钥的 .env 提交进版本历史.envgit push →☁️密钥会进入远程提交历史
发展历程 · History
1991—2002
史前时代:补丁 + tar 包
Linux 内核靠邮件列表互发补丁和压缩包协作,版本管理基本靠吼。
2002
改用商业工具 BitKeeper
内核团队开始用商业分布式工具 BitKeeper 管理源码,免费但要看人脸色。
2005.04
Linus 十天写出 git
BitKeeper 收回免费授权。Linus Torvalds 一怒之下自己写,约十天出活。「git」在英式俚语里是「讨厌鬼」,他自嘲:我是个自负的混蛋,所有项目都按自己命名——先有 Linux,现在 git。
2005.06
接管 Linux 内核
git 正式成为 Linux 内核的版本管理工具,分布式(每人一份完整历史)从此成为主流。
2008
GitHub 上线
git 从单机工具变成协作网络:fork、pull request、社交化编程登场。
2018
微软 75 亿美元收购 GitHub
开源最大的家被巨头买走,社区一度恐慌,几年后证明体验只增不减。
今天
全世界的代码都活在 git 上
从 Linux 内核到你刚让 AI 生成的第一个页面,几乎每一行代码的背后都有 git。
组成结构 · Anatomy
💻 工作区你正在改的文件
git add →
📥 暂存区选好这次要记录的改动
git commit →
🗄 本地仓库存档点在这
git push →
☁️ 云端仓库GitHub
1工作区Working Dir你电脑上正在修改的文件,这些变化还没有进入版本历史
2暂存区Staginggit add 选择下一次 commit 要记录的改动,文件本身不会被搬走
3本地仓库Repositorygit commit 把暂存区内容写进本地历史,生成带编号和说明的记录
4远程仓库Remotegit push 后远程才会收到本地的新提交,可用于协作和异地副本
典型使用场景
GitHub 提交记录页
终端里 git log 翻历史
$ git log --oneline
c7d8e9f AI 改导航栏,页面乱了
a1b2c3d 首页能跑了 ✓
0f1e2d3 初始化项目
每行一个存档点:前面是编号,后面是说明
回滚到上一个 commit
$ git revert c7d8e9f
[main f4e5d6c] Revert "AI 改导航栏"
新增一条反向提交,旧历史仍然保留
GitHub 仓库首页