GitHub 可不是普通的代码仓库!它是全球千万开发者的社交平台,是开源项目的聚集地,更是程序员的 ” 简历加分神器 ”✨。
不管你是想给开源项目贡献代码,还是搭建自己的项目让别人帮忙,甚至是找工作时展示作品集——GitHub 都能搞定!这一章我们从入门到进阶,用最有趣的例子 + 实操代码,让你快速玩转 GitHub~
SSH 密钥配置
双因素认证
个人资料完善
1. 账户注册 – 免费入场券🎫
注册 GitHub 账户超简单,3 步就能搞定:
- 访问官网 https://github.com,输入用户名、邮箱和密码
- 密码要求:至少 1 个小写字母 + 1 个数字 + 7 个字符(安全第一!)
- 验证邮箱(重要!后续协作、找回密码都要用)
免费账户可以创建无限个公开仓库,适合开源项目和学习使用。如果需要私有仓库,可以升级付费计划~
2. SSH 密钥配置 – 免密码登录神器🔑
默认用 HTTPS 链接仓库,每次推送都要输用户名密码,太麻烦了!配置 SSH 密钥后,就能免密登录,效率翻倍~
ls -al ~/.ssh # 查看.ssh 目录下的文件# 2. 如果没有,生成新密钥(替换成你的 GitHub 邮箱)
ssh-keygen -t ed25519 -C “ 你的邮箱 @example.com”
# 按 3 次回车(不需要设置密码,直接默认即可)
# 3. 启动 SSH 代理,添加密钥
eval “$(ssh-agent -s)” # 启动代理
ssh-add ~/.ssh/id_ed25519 # 添加私钥
# 4. 复制公钥内容(Windows 可能需要用 cat 命令查看后复制)
cat ~/.ssh/id_ed25519.pub
# 复制输出的全部内容(从 ssh-ed25519 开始到邮箱结束)
接下来在 GitHub 上添加公钥:
- 点击右上角头像 → Settings(设置)
- 左侧选择 SSH and GPG keys → New SSH key
- 标题填 ” 我的笔记本 ”(方便区分多设备),粘贴公钥内容,点击 Add SSH key
ssh -T git@github.com,出现 “Hi 你的用户名! You’ve successfully authenticated…” 就说明搞定啦~3. 双因素认证(2FA)- 账户安全双保险🛡️
只靠密码不够安全!开启双因素认证后,登录需要 ” 密码 + 动态验证码 ”,就算密码泄露也不怕~
配置步骤:
- Settings → Security(安全)→ Two-factor authentication(双因素认证)
- 选择验证方式:手机 App(推荐 Google Authenticator)或短信
- 按照提示扫描二维码,保存恢复码(重要!丢了手机能用来找回)
- 输入 App 生成的验证码,完成开启
4. 个人资料完善 – 让别人认识你🤳
完善个人资料,不仅能让协作更顺畅,还能给潜在雇主留下好印象:
- 头像:上传清晰的照片或个性图标(Gravatar 用户会自动同步)
- 邮箱:添加所有你用于 Git 提交的邮箱(GitHub 靠邮箱关联提交记录)
- 个人简介:简单介绍自己,比如 ” 前端开发爱好者|开源贡献者 ”
- 链接:添加个人博客、作品集网站等
比如你用 A 邮箱提交代码,却没添加到 GitHub,别人就看不到是你提交的——所以一定要把所有常用邮箱都加上!
GitHub Flow
Pull Request(PR)
PR 迭代
1. Fork 仓库 – 复制一份自己的 ” 玩具 ”🪀
如果想给别人的项目改代码,但没有直接推送权限怎么办?用 Fork 功能!
核心逻辑:Fork 就是在你自己的 GitHub 账户下,创建原项目的完整副本。你可以随意修改这个副本,不会影响原项目。
操作步骤:打开原项目页面(比如 https://github.com/schacon/blink),点击右上角的 ”Fork” 按钮,等待几秒就完成啦~
2. GitHub Flow – 贡献代码的标准流程🚀
GitHub 官方推荐的协作流程,简单 6 步,不管是小团队还是开源项目都适用:
git clone git@github.com: 你的用户名 /blink.git
cd blink# 步骤 2:从 master 分支创建主题分支(比如要做 ” 减慢闪烁速度 ” 功能)
git checkout -b slow-blink # 分支名要清晰,让人一看就知道做什么
# 步骤 3:修改代码,提交修改
# 比如把延迟 1 秒改成 3 秒(用编辑器改 blink.ino 文件,或用命令行)
sed -i ” ‘s/1000/3000/’ blink.ino # Mac/Linux 命令(替换文本)
# Windows 用:sed -i ‘s/1000/3000/’ blink.ino
# 查看修改是否正确
git diff
# 提交修改
git commit -am “ 将 LED 闪烁延迟从 1 秒改为 3 秒,体验更好 ”
# 步骤 4:推送到自己的 GitHub 仓库
git push origin slow-blink
# 步骤 5:在 GitHub 网页上打开 PR(后续网页操作)
# 步骤 6:根据审核意见迭代修改,最后等待合并
3. 打开 Pull Request(PR)- 向原项目 ” 交作业 ”📝
推送分支后,就可以向原项目提交 PR,请求作者合并你的修改:
- 打开你 Fork 的仓库页面,会看到 ”Compare & pull request” 绿色按钮
- 填写 PR 标题和描述:标题要简洁(比如 ” 优化 LED 闪烁延迟 ”),描述要说明修改原因和内容(比如 ” 原 1 秒太快,3 秒更易观察 ”)
- 选择目标分支(一般是原项目的 master/main 分支),点击 ”Create pull request”
PR 就像一份 ” 修改申请单 ”,原项目作者会看到你的代码修改,还能在线评论、提出修改意见~
4. PR 迭代 – 根据意见修改代码🔄
提交 PR 后不一定一次通过,作者可能会让你调整代码。这时候不用重新开 PR,直接在原来的分支上修改推送就行:
# 再次修改 blink.ino 文件
vim blink.ino # 编辑文件,调整延迟时间
git commit -am “ 调整灭灯时间为 4 秒,优化闪烁效果 ”
# 推送到同一个分支,PR 会自动更新
git push origin slow-blink
推送后,PR 页面会自动显示新的修改,作者能看到你的更新。沟通清楚后,作者就会点击 ”Merge pull request” 合并你的代码——恭喜你,成为开源贡献者啦!🎉
5. 复杂场景:PR 冲突了怎么办?😵
如果原项目在你 Fork 后更新了,你的 PR 可能会出现冲突(比如别人也改了同一个文件)。这时候需要同步原项目的最新代码:
git remote add upstream https://github.com/schacon/blink.git# 2. 拉取原项目的最新代码
git fetch upstream
# 3. 合并到你的功能分支
git merge upstream/master
# 4. 如果出现冲突,打开冲突文件编辑
# 冲突文件里会有 <<<<<<< HEAD(你的代码)和 >>>>>>> upstream/master(原项目代码)标记
# 编辑文件,保留正确代码,删除冲突标记
vim blink.ino
# 5. 提交合并结果,重新推送
git add blink.ino
git commit -m “ 合并上游仓库代码,解决冲突 ”
git push origin slow-blink
这样 PR 就会显示 ” 可以自动合并 ”,作者就能顺利合并你的代码啦~
添加协作者
管理 PR
特殊文件
1. 创建仓库 – 搭建你的代码基地🏗️
想分享自己的项目?创建仓库超简单:
- GitHub 首页点击 ”+” → New repository
- 填写仓库名称(简短好记,比如 ”my-first-project”)
- 可选:添加描述、初始化 README 文件、选择.gitignore 模板(忽略不需要提交的文件)
- 点击 ”Create repository”,仓库就创建好啦!
创建后,GitHub 会显示推送本地代码的命令,直接复制执行就行:
cd 你的项目目录
git init
git add .
git commit -m “ 初始化项目 ”
git branch -M main
git remote add origin git@github.com: 你的用户名 / 仓库名.git
git push -u origin main
2. 添加协作者 – 邀请小伙伴一起玩🤼
如果想让别人一起开发你的项目,需要添加协作者(给他们推送权限):
- 仓库页面 → Settings → Collaborators(协作者)
- 输入对方的 GitHub 用户名或邮箱,点击 ”Add collaborator”
- 对方接受邀请后,就能克隆仓库、创建分支、推送代码啦~
3. 管理 PR – 审核别人的贡献📋
当别人给你的项目提交 PR 时,你需要审核代码、沟通修改、最后合并:
- 查看修改:PR 页面会显示代码差异(新增用 +,删除用 -),可以逐行查看
- 评论代码:点击差异行的 ”+” 号,就能添加评论(比如 ” 这里可以优化一下 ”)
- 合并 PR:如果代码没问题,点击 ”Merge pull request” 合并;如果不想合并,点击 ”Close pull request” 关闭
合并 PR 有两种方式:
- 网页合并:直接点击按钮,GitHub 会自动创建合并提交
- 本地合并:适合复杂情况,拉取对方的 PR 分支本地测试后合并
# 拉取 PR 分支(需要先配置拉取 PR 的规则)
git fetch origin refs/pull/1/head:pr-1
# 切换到 PR 分支测试
git checkout pr-1
./run-tests.sh # 运行测试脚本,验证代码是否正常
# 测试通过,合并到 main 分支
git checkout main
git merge pr-1
git push origin main
4. 特殊文件 – 让项目更专业📄
添加这两个文件,能让你的项目更规范,方便别人贡献:
(1)README.md – 项目说明书
每个项目都应该有 README,告诉别人这个项目是什么、怎么用:
- 项目介绍:一句话说明项目用途(比如 ” 一个简单的 LED 闪烁程序 ”)
- 安装步骤:如何克隆、配置、运行项目
- 使用示例:简单的代码或命令示例
- 贡献指南:告诉别人如何给你提交 PR
- 许可证:项目的开源许可证(比如 MIT)
(2)CONTRIBUTING.md – 贡献指南
如果你的项目比较复杂,可以添加这个文件,说明贡献规则:
- 提交规范:比如 ” 提交信息要包含功能 + 修改内容 ”
- PR 要求:比如 ”PR 要关联 Issue,运行测试通过 ”
- 代码风格:比如 ” 遵循 PEP8 规范(Python 项目)”
有了这个文件,别人提交 PR 时,GitHub 会自动提示他们先阅读贡献指南,减少不规范的 PR~
引用功能
通知管理
组织管理
1. GitHub Flavored Markdown – 让文字更漂亮✨
在 Issue、PR 描述、README 里,都可以用 GitHub 专属的 Markdown 语法,让内容更易读:
(1)任务列表 – 跟踪进度
– [x] 实现核心功能
– [] 编写测试用例
– [] 完善文档
渲染后会显示勾选框,点击就能标记完成,适合在 PR 里跟踪要做的事~
(2)代码片段 – 展示代码
用三个反引号包裹代码,还能指定语言实现语法高亮:
# Python 代码示例
def hello():
print(“Hello GitHub!”)
hello()
“`
(3)表情符号 – 增加趣味😆
输入 : 表情名: 就能插入表情,比如 :+1: 是👍,:bug:是🐛。
推荐工具:Emoji cheat sheet,可以查询所有可用表情~
(4)图片上传 – 直观展示
在评论或 README 里,直接拖拽图片就能上传,GitHub 会自动生成图片链接:
语法:(拖拽后会自动生成)
2. 引用功能 – 快速关联内容🔗
在 GitHub 里可以快速引用 Issue、PR、提交记录,方便追踪:
- 引用 Issue/PR:输入
# 编号(比如#5,会自动链接到编号 5 的 Issue/PR) - 引用其他仓库的内容:输入
用户名 / 仓库名 #编号(比如schacon/blink#3) - 引用提交记录:粘贴完整的提交 SHA-1(比如
a5a7751a33b7e86c5e9bb07b26001bb17d775d1a)
示例:在 PR 描述里写 ” 修复了 #2 的问题 ”,就能直接关联到编号 2 的 Issue~
3. 通知管理 – 不被消息淹没📱
项目活跃后会收到很多通知(比如别人评论你的 PR、提交新 Issue),可以这样管理:
- 开启 / 关闭通知:仓库页面点击 ”Watch”,可以选择 ”Watch”(接收所有通知)、”Unwatch”(不接收)、”Custom”(自定义)
- 通知方式:Settings → Notifications,可以选择通过邮件或网页通知
- 静音通知:在 Issue/PR 页面点击 ”Unsubscribe”,可以停止接收该内容的通知
4. 组织管理 – 团队协作利器🏢
如果是团队开发,可以创建 GitHub 组织(Organization),统一管理项目和成员:
- 创建组织:点击 ”+” → New organization,填写组织名称和邮箱
- 创建团队:组织页面 → Teams → New team,比如创建 ” 前端团队 ”、” 后端团队 ”
- 添加成员:给团队添加成员,设置权限(只读、读写、管理员)
- 管理项目:把项目移到组织下,团队成员就能按权限访问项目
比如公司可以创建 ”xxx 公司 ” 组织,所有项目都放在组织下,方便统一管理和协作~
场景 1:多人协作同一个功能
如果和同事一起开发一个功能,可以创建共享分支,实时同步进度:
git checkout -b feature-shared
git push origin feature-shared# 2. 同事拉取共享分支
git fetch origin
git checkout feature-shared
# 3. 同事修改后推送
git commit -am “ 完成功能模块 A ”
git push origin feature-shared
# 4. 你拉取同事的修改,继续开发
git pull origin feature-shared
# 开发功能模块 B
git commit -am “ 完成功能模块 B ”
git push origin feature-shared
建议每天开发前先 pull 同步,避免冲突堆积~
场景 2:误提交到错误分支
比如想提交到 feature 分支,却不小心提交到了 main,可以用 cherry-pick 转移提交:
git log main# 2. 切换到正确的 feature 分支
git checkout feature- 正确分支
# 3. 转移错误提交
git cherry-pick abc123
# 4. 删除 main 分支的错误提交(如果还没推送)
git checkout main
git reset –hard HEAD~1 # 撤销最后一次提交
# 如果已经推送,用 revert 创建反向提交(不修改历史)
git revert abc123
git push origin main
场景 3:给旧项目提交补丁
有些老项目不支持 PR,只接受补丁文件,可以用 git format-patch 生成补丁:
git checkout -b patch-fix origin/master# 2. 修复问题并提交
git commit -am “ 修复 XX bug”
# 3. 生成补丁文件
git format-patch -M origin/master # 生成 0001-xxx.patch 文件
# 4. 发送补丁(通过邮件或其他方式)
# 对方收到后,应用补丁:git am 0001-xxx.patch
- 账户配置:注册后一定要配置 SSH 密钥和双因素认证,安全又方便
- 贡献代码:Fork → 创建主题分支 → 修改 → 推送 → 开 PR,遵循 GitHub Flow
- 维护项目:添加 README 和 CONTRIBUTING 文件,规范 PR 审核流程
- 高级技巧:用好 Markdown、引用功能、组织管理,提升协作效率
要不要我帮你整理一份GitHub 入门速查手册?包含常用命令、PR 提交模板、Markdown 语法 cheat sheet,打印出来就能随时查阅~