Git 与 GitHub:先学会完成一件真实的事
这一组课程不是让你背 git add、git push。学完以后,你应该能独立完成下面这件事:
你在 GitHub 看到一个网站项目,把它复制到自己的电脑,成功运行;然后新建一个安全分支,修改一句文字,保存成 commit,上传到 GitHub,最后发出 Pull Request 请项目维护者检查。
这条路线看起来很长,其实只是不断回答三个问题:
- 代码现在在哪里:别人的 GitHub、你的 GitHub,还是你的电脑?
- 你现在要做什么:下载、修改、保存、上传,还是请求合并?
- 做完以后应该在哪里看到结果?
先分清 Git 和 GitHub
Git 是你电脑上的版本记录工具。断网时,git status、git diff 和 git commit 仍然可以工作。
GitHub 是互联网上保存 Git 仓库和协作的服务。push、pull、Fork 和 Pull Request 需要连接 GitHub。
text
你的电脑
修改文件 → git add → git commit
↓
git push
↓
GitHub
分支 → Pull Request → 检查 → Merge 进入 main你现在想完成哪件事
00 · READY第一次使用 Git 的准备检查安装、配置提交身份,并分清 GitHub 登录和 Git 姓名。01 · GET把别人的项目放到电脑并运行先检查 README 和许可证,再 clone、安装依赖、启动项目。02 · SAVE保存并上传自己的一次修改status、diff、add、commit、push 到底分别做什么。03 · BRANCH新功能不要直接改 main创建分支、切换分支、推送分支以及合并后清理。04 · REVIEWPull Request 到底是什么base、compare、review、checks、merge 全部放进一个真实场景。05 · CONTRIBUTE修改别人的开源项目Fork、Clone、upstream 和给原项目提交 PR 的完整过程。06 · SYNC拉取更新和处理冲突fetch、pull、同步 Fork,以及看到冲突时怎样安全处理。07 · WORDSGit 人话词典Repository、origin、upstream、HEAD 等词在实际操作里是什么意思。
一条完整路线先看全貌
假设项目叫 tiny-notes,你准备修正首页的一句错别字:
- Fork如果你没有原项目的写入权限,先在 GitHub 生成一份属于自己的远程副本。
- Clone把远程仓库完整复制到电脑,得到真实文件和 Git 版本历史。
- 新建 Branch从 main 复制一条安全支线,名字叫 fix-homepage-typo。
- 修改和验证打开文件修正文字,启动项目,确认页面仍然正常。
- Add 和 Commit选择这次要保存的修改,再创建一个带说明的版本存档。
- Push把电脑上的新分支和 commit 上传到自己的 GitHub 仓库。
- Pull Request请求原项目把你的分支变化检查后合并进 main。
- Merge检查通过后,维护者把这次修改正式放入主分支。
Pull Request 不是 `git pull`。`git pull` 是把远程更新拿到电脑;Pull Request 是在 GitHub 上请求别人审查并合并你的修改。它们只是英文里都出现了 pull。
课程参考
这组课程采用原创中文示例,教学顺序参考了三个公开项目:
- GitHub Skills:Introduction to GitHub:适合第一次练习 branch、commit、Pull Request 和 merge。
- First Contributions:适合完整练习 Fork、Clone、Push 和给别人的项目提交 PR。
- Pro Git 2:用于核对 Git 分支、远程仓库和同步概念。
前两个项目使用 MIT License。这里没有复制它们的截图或整段课程文字,而是采用它们“先完成一次真实任务”的教学方法。
你在 GitHub 看到一个项目,但电脑上还没有它。第一步应该直接执行 git pull 吗?
答案:不是。第一次把远程项目完整放到电脑通常使用 git clone。git pull 用于本地已经有这个仓库以后,再拉取远程的新变化。