文章目录
-
- [1. 几个角色(先对齐名字)](#1. 几个角色(先对齐名字))
- [2. 日常生活类比:本地小仓 vs 云端大仓](#2. 日常生活类比:本地小仓 vs 云端大仓)
- [3. 常见动作一览(比 pull/push 多一点)](#3. 常见动作一览(比 pull/push 多一点))
- [4. 结合你们**刚刚的步骤**走一遍(时间顺序)](#4. 结合你们刚刚的步骤走一遍(时间顺序))
- [5. 一句话记](#5. 一句话记)
- 写在最后
1. 几个角色(先对齐名字)
| 概念 | 简单说 |
|---|---|
| 工作区 | 你磁盘上的项目文件夹,改代码就在这里 |
| 暂存区(stage) | git add 之后,「准备装箱」的改动 |
| 本地仓库(.git) | git commit 之后,在你电脑上记一笔「正式版本」 |
| 远程(origin) | GitHub 上那个仓库,大家都能看到的「中央仓」 |
2. 日常生活类比:本地小仓 vs 云端大仓
- 你电脑上的 Git = 自家小仓库:进货、打包、贴标签(commit)都在本地完成。
- GitHub = 全国总仓 / 发货中心 :别人从网页看代码、协作,都以总仓里有什么为准。
git push= 把你小仓里已经贴好标签的货 ,发到总仓,网页上才看得见。git pull= 总仓有新货 (例如 GitHub 上勾了 LICENSE)时,先把总仓的更新拉回你小仓,和你的货对齐,避免「你发的和总仓已有的打架」。git add+git commit= 在本地装箱、贴单 (还没发货);不 commit 就不会被 push 上去。
所以:网页上「空」= 总仓里还没收到你的货 = 没 push 或没 push 成功。
3. 常见动作一览(比 pull/push 多一点)
改文件 → git add → git commit(本地记一笔)
↓
git push(发到 GitHub)← 网页更新
若远程先有东西 / 别人推过:
git pull(或 pull --rebase)← 先对齐,再 push
其他偶尔会遇到的:
| 动作 | 干什么 |
|---|---|
git clone |
第一次把整个远程仓库拷到本机(你们没用,你们是本地先有项目) |
git fetch |
只问总仓「有啥新标签」,不合并 ;pull ≈ fetch + merge/rebase |
git remote add |
告诉本地:「总仓地址是 GitHub 上哪一个」 |
git status |
看当前哪些改了、哪些还没 commit |
4. 结合你们刚刚的步骤走一遍(时间顺序)
-
本地开发
在
V2V_Ganster里写代码 →git add/git commit→ 货只在你本地小仓。 -
在 GitHub 建仓库
总仓建好了;若勾了 LICENSE,总仓里先有一小箱货(远程多一个提交)。
-
git remote add origin ...给本地一张总仓地址 ,但还没运货。
-
第一次
git push被拒总仓里已有「LICENSE 那一箱」,你本地历史里没有那一笔 ,Git 不让直接盖过去 → 提示 fetch first。
-
git pull ... --allow-unrelated-histories --rebase从总仓把 LICENSE 那笔拉下来 ,把你的本地提交接到后面 (rebase),小仓和总仓历史对齐 ,但总仓网页还没变 (因为 pull 是下载+改本地,不是往 GitHub 上传你的大项目)。
-
git push -u origin main把对齐后的整条
main推到总仓 → 网页刷新就有完整项目 + LICENSE。
整条线:本地 commit → 和远程对齐(pull)→ 再推上去(push)。
日常改代码:
改文件
git add(可选:要哪些文件进这一笔订单)git commit(在本地打成一包)git push(把这包发到 GitHub)
只有别人在网页上改了、或你先建了带 LICENSE 的仓库时,才需要:
git pull(把远程的新提交拉下来对齐)再 git push。
5. 一句话记
- commit :本地贴标签、还没发货。
- push :发货到 GitHub,别人和网页才看得见。
- pull :总仓有新单或协作有更新,先拉回再合并/变基,避免推送冲突。
用发货来记:没有「push」这一趟车,总仓(网页)里就永远没有你那批货。
写在最后
各位看官,都看到这里了,麻烦动动手指头给博主来个点赞8,您的支持作者最大的创作动力哟!
才疏学浅,若有纰漏,恳请斧正
本文章仅用于各位作为学习交流之用,不作任何商业用途,若涉及版权问题请速与作者联系,望悉知