1、本地仓库
🟦 什么是本地仓库?
当你从远程仓库克隆项目到电脑,或自己在本地 git init 创建一个项目时,就会生成一个 本地仓库
它就像一个:
📌 记录你所有修改历史的私人工作区
📌 不联网也能使用的开发空间
📌 试验、备份、版本管理的多功能实验室
用更贴近日常的小比喻👇
本地仓库 = 你自己桌面上的草稿本,
你可以改、可以写乱、可以翻以前的内容,谁也不会受影响。
等你满意后再把结果拿去"班级共享"------那就是 push 到远程。
🟦 本地仓库实际上包含三个区域
| Git区域 | 理解 | 意义 |
|---|---|---|
| 工作区 Working Directory | 你的草稿纸 | 文件实际编辑的地方 |
| 暂存区 Staging Area | 草稿准备区、待提交篮子 | 想提交哪些改动先放进去 |
| 本地仓库 Local Repository | 历史记录册 | commit 后的永久版本存档 |
🟦 本地仓库能做的事
① 随时 commit,保存每一次改动历史
前面我们说了git帮你保存每一次修改,并能随时回到任何一次修改
这个保存的操作就是commit操作,保存每一次改动历史
你不需要等到完美再提交,只要改动完成一小步就能保存:
✔ 新增功能 → commit
✔ 调整UI → commit
✔ 修bug → commit
每一次都是一张"时光快照",想回滚随时回:
🌱 commit 就像给你的项目拍照片
💥 崩了?直接回到上一张照片,稳如老狗
② 可以无限分支,做实验安全无风险
分支是本地仓库最大自由度,这里多出来的分支,你可以看作从copy一份项目文件出来用于你的项目实验
示例:
main(稳定版)
├─ try-ai-test ← 测AI敌人看是否好玩
├─ ui-redesign ← 改坦克UI但怕翻车?
└─ crazy-physics ← 胡搞弹道轨迹也不怕
一键获取完整项目代码
bash
无论试验多疯:
🟡 不会影响主项目
🟡 不会影响队友
🟡 随时可合并 or 放弃
Git本地仓库让探索变得无负担。
你甚至可以尽情写错,因为随时回滚。
③ 本地仓库可以脱离网络使用(离线依然强大)
想象你坐高铁、去咖啡馆断网、飞机上开发:
你依然可以:
✔ 查看版本历史
✔ 建分支、写代码、写策划文档
✔ commit 多次保存快照
④ 推送前可以自查,不会破坏主项目
直接在云端写代码 = 风险很大
但 Git 不允许直接改远程,而是要求先在本地完成修改
你在本地打磨 → 测试通过 → push
这样保证提交到远程的永远是靠谱版本
队友看到的是你思考后的结果,不是半成品或错误文件
2、远程仓库
🧊 什么是远程仓库?
有什么方法能给存储每个版本的文件,并且让队友也能即时看见储每个版本的文件。是的,使用网络,并且创建一个远程仓库。
远程仓库 = 把你的代码/文件存在网上,而不是只放在你电脑里。
远程仓库 可以存储你每次提交的信息,并且队友也能通过远程仓库即时的看见你提交的信息
一般靠谱的队友会把自己本地仓库深思熟虑的工作成果上传到远程仓库!
这样做最重要的作用是:
📌 换电脑也能随时拿到项目文件
📌 队友能随时一起修改项目文件
📌 本地电脑坏了文件也不会受到任何损失
🧊远程仓库能做的事
① 本地代码推送到远程仓库(push)
你在本地写代码 → commit 保存 → 想共享给队友
这时你会执行 push:
push = 把你电脑里的成果上传到远程仓库,让别人也能看到。
适用场景:
✔ 完成一个功能
✔ 修完 bug
✔ 调整文档或素材
✔ 想与团队同步你的进度
② 从远程拉取最新代码到本地(pull)
当别人推送了更新,而你本地还是旧版本,你需要 pull:
pull = 把他人更新下载并合并到本地,让你保持最新进度。
适用场景:
✔ 队友开发完新模块
✔ 远程仓库有人修了冲突
✔ 有关键功能更新你要接着做
一句话总结 ①②:
我写完 → push 上传
别人更新 → pull 下载
③支持权限管理,决定谁能访问/修改
你可以设置:
公开还是私有?
谁能看?
谁能 push?
谁只能 read-only?
🧊 为什么要有远程仓库?(它解决了哪些痛点)
这里对小白略抽象,可以快速看一遍尽量理解,实在看不懂没关系,你就当我水字数
① 做多人协作的「中心版本库」
没有远程仓库时,每个人都拿着一份项目副本,互相发压缩包、发U盘:
谁是最新版?
谁改的东西是对的?
同时改冲突怎么解决?
一团乱。
有了远程仓库之后:
约定:以远程仓库为"唯一权威版本"
大家从远程拉最新 → 在本地改 → 改完再推回远程
团队协作就变成这样一条闭环:
远程拿 → 本地改 → 传回远程 → 别人再拿最新
所以你可以这么形容:
远程仓库是这个项目的"大家都认的源头版本"。
② 做项目的「安全备份」
只放在本地会怎样?
电脑坏了、硬盘挂了、被偷了 → 项目没了
不小心删库 → 直接社会性死亡
而远程仓库在云端服务器上,通常会:
异地备份RAID
磁盘阵列运
维团队守着
你本地炸了,只要远程在,一切还在。
最多再 clone 一份下来继续干活。
③做多设备之间的「同步枢纽」
你可能不止一台设备:
公司电脑
家里电脑
笔记本 / iPad
有了远程仓库,流程变成:
在公司写到一半 → push
回家 pull 一下 → 立刻接着写
远程仓库就是你的"云端中转站",
你在哪台电脑,就从云里把项目捞下来继续写。
④ 做「权限控制」和「审计记录」
远程仓库一般都在平台上托管,比如:
GitHub、Gitee、GitLab.com、Bitbucket(公共云)
公司内网 GitLab / Gitea(自建,只有员工能访问)
这些平台会提供:
谁能访问这个仓库(公开 / 私有,成员列表)
谁能写(push)?谁只能看(pull)?
谁在什么时候提交了什么东西(提交记录 + 日志)
你可以把它理解成:
远程仓库 = 上锁的共享文件柜 + 自动记账本。
锁决定谁能动,记账本记录谁动过。
⑤ 驱动自动化:测试 / 部署 / 检查(进阶但很重要)
很多团队会约定:
"只要有人 push 到远程仓库,就自动触发一件事。"
比如:
自动跑一遍测试,看有没有写挂
自动构建、自动部署到测试环境 / 线上
自动做代码检查(lint、格式化)
也就是说:远程仓库经常是整个自动化流水线的触发点,
🧊 常见的 Git 远程仓库平台有哪些?
| 平台 | 类别 | 小白理解 |
|---|---|---|
| GitHub | 全球最大开源平台 | 有点像"代码界的淘宝城",啥都有 |
| Gitee(码云) | 国内平台,速度快 | 类似国产 GitHub,访问更顺畅 |
| GitLab | 企业常用,可私有部署 | 就像公司自建仓库,只员工能进 |
| Bitbucket | 程序团队多人协作多 | 小团队免费私库多,适合开发协作 |