① 先分清两个词:Git 和 GitHub 不是一回事
| 是什么 | 打个比方 | |
|---|---|---|
| Git | 一个装在你电脑上的软件,负责"记录代码每一次改动的历史" | 像 Word 的"修订记录",但更强大,能回到任意一个历史版本 |
| GitHub | 一个网站,把 Git 记录的历史"放到网上",方便分享、备份、多人协作 | 像把你的 Word 修订记录传到网盘,还能让别人看、评论、一起改 |
一句话:Git 是本地工具,GitHub 是把 Git 的内容搬到线上的网站。类似关系:Word(工具)vs 云盘(云端存储+分享)。
② 核心概念,逐个解释(都是"这是什么"级别,不涉及命令)
| 术语 | 解释 |
|---|---|
| 仓库 / Repository(简称 repo) | 一个项目的"文件夹+完整历史记录",是 Git/GitHub 里最基本的单位。你电脑上任何一个文件夹,如果被 git 管理,就可以变成一个仓库 |
| 提交 / Commit | 一次"存档点"。你改了几个文件,觉得这一批改动可以定格了,就"commit"一次,会附带一句说明(如"修复登录bug")。以后可以随时回到任何一个commit看当时的样子 |
| 推送 / Push | 把你电脑本地的 commit 历史,同步上传到 GitHub 网站上 |
| 拉取 / Pull | 反过来,把 GitHub 网站上的最新内容,同步下载到你电脑本地 |
| 克隆 / Clone | 第一次把别人 GitHub 上的整个仓库,完整复制一份到你自己电脑上(包含全部历史) |
| 分支 / Branch | 项目历史的"平行时间线"。主线通常叫 main 或 master,你可以开一个新分支试验性地改东西,不影响主线,改好了再合并回去 |
| 合并 / Merge | 把一个分支的改动,合并回另一个分支(通常是合回主线) |
| Fork | 在 GitHub 网站上,把别人的仓库整个复制一份到你自己的账号名下(跟clone不同:clone是下载到本地电脑,fork是在网站上复制到你的账号) |
| Pull Request(简称 PR) | 你在自己 fork 的仓库里改好了东西,想把改动"贡献"回原作者的仓库,就发一个 PR,原作者review后可以接受合并 |
| Issue | 项目的"留言板/问题反馈区",用来报bug、提需求、讨论 |
| .gitignore | 一份清单文件,告诉Git"这些文件/文件夹不要记录历史、不要上传"(比如密码文件、临时文件) |
| README.md | 每个仓库的"门面说明书",GitHub会自动在仓库首页显示它的内容,是了解一个项目该看的第一份文件 |
③ 一个完整的"心智模型"例子
假设你要发布自己电脑上的一个项目文件夹到 GitHub:
1. 你电脑本地的项目文件夹 → 已经用 Git 管理(有
.git 隐藏文件夹)→ 这就是"本地仓库"2. 你改了代码、觉得可以定格 → commit(本地存档一次)
3. 在 GitHub 网站上建一个空仓库(相当于云端的"收纳盒")
4. push → 把本地的所有commit历史,传到GitHub那个空仓库里
5. 现在任何人打开这个GitHub链接,都能看到你的代码+README+全部历史
6. 以后你继续改代码 → 继续commit → 继续push,GitHub上的内容就跟着更新
别人怎么用你发布的项目
别人在GitHub搜到你的项目 → 点 clone(复制到他们自己电脑)
→ 或点 fork(复制到他们自己的GitHub账号)
→ 觉得好用就点 ⭐ Star(收藏+给你加人气)
→ 想跟你交流就开一个 Issue
→ 想帮你改代码就发一个 Pull Request
④ 常见的"卡住"时刻
| 卡在哪 | 大概率原因 |
|---|---|
| push 失败,提示要先pull | 说明 GitHub 上有本地没有的新内容,先pull同步一下再push |
| 不小心把密码/API Key 传上去了 | 立刻去GitHub仓库设置里删除/重置那个key,并在.gitignore里加上对应文件,以后避免 |
| 两个人改了同一个文件同一个地方 | 出现"冲突(conflict)",需要人工选择保留哪部分,Git会标出冲突的地方 |
| clone下来的项目跑不起来 | 通常是README里写的"安装依赖"步骤没做(比如没装对应的运行环境、没跑安装依赖的命令) |
⑤ 术语表
- Repository / Repo(仓库)
- 一个项目的文件夹+完整历史记录。
- Commit(提交)
- 一次代码改动的存档点,附带说明文字。
- Push / Pull(推送/拉取)
- Push把本地历史传到线上;Pull把线上内容同步到本地。
- Branch(分支)
- 项目历史的平行时间线,可以独立试验不影响主线。
- Fork / Clone
- Fork是在GitHub网站复制到自己账号;Clone是下载到本地电脑。
- Pull Request(PR)
- 请求原作者把你的改动合并进他们仓库的正式提议。
本文档由 shop.maysuns.uk 免费提供