GitHub 使用随笔
常用术语
watch:会持续收到该项目的动态fork:复制某个仓库到自己的 Github 仓库中star:可以理解为点赞clone:将项目下载至本地follow:关注自己感兴趣的作者,会收到他们的动态pull request (PR):在多人协作编程的项目中,用于向代码仓库提交自己的代码更改请求
免密推送代码
GitHub 免密推送代码,常见的实现方式有以下三种:
- (1) 推荐使用 SSH Key 方式,安全且适用于个人开发者。
- (2) 如果是 Linux 服务器自动化 Push 代码,使用 Deploy Key。
- (3) 如果使用 HTTPS,可以使用 Git Credential Helper,即将 Token 存储在本地文件中。
使用 SSH Key
推荐使用 SSH 公钥的方式来实现免密 Push 代码,安全且适用于个人开发者。
- (1) 执行生成 SSH 密钥的命令,然后一路回车,默认生成
~/.ssh/id_rsa(私钥)和~/.ssh/id_rsa.pub(公钥)
1 | ssh-keygen -t ed25519 -C "your_email@example.com" |
- (2) 查看 SSH 公钥的内容
1 | cat ~/.ssh/id_rsa.pub |
(3) 复制 SSH 公钥内容,然后在 GitHub 设置里添加:
- 进入 GitHub SSH Keys 页面
- 点击
New SSH key按钮 - 粘贴
id_rsa.pub公钥的内容 - 确认添加
(4) 测试 SSH 连接认证,如果看到以下内容,则说明 SSH 认证成功
1 | ssh -T git@github.com |
1 | Hi your_username! You've successfully authenticated... |
- (5) 更改 Git 远程仓库 URL,如果 GitHub 仓库是 HTTPS 方式,需要修改为 SSH 方式
1 | git remote set-url origin git@github.com:your_username/your_repo.git |
- (6) 免密 Push 代码,以后在本地执行
git push时,就不会再要求输入密码或 Token 了
1 | git push origin main |
使用 Deploy Key
如果代码是在 Linux 服务器上自动化 Push 的,那么可以使用 Deploy Key 来实现免密 Push 代码,适用于使用自动化脚本的场景。
- (1) 执行生成 SSH 密钥的命令,然后一路回车,默认生成
~/.ssh/github_deploy_key(私钥)和~/.ssh/github_deploy_key.pub(公钥)
1 | ssh-keygen -t ed25519 -f ~/.ssh/github_deploy_key |
- (2) 查看 SSH 公钥的内容
1 | cat ~/.ssh/github_deploy_key.pub |
(3) 复制 SSH 公钥内容,然后添加到 GitHub 仓库的 Deploy Keys
- 进入项目所在的 GitHub 仓库
- 菜单栏导航到
Settings->Deploy Keys - 点击
Add deploy key按钮 - 粘贴
github_deploy_key.pub公钥的内容 - 勾选
Allow write access(允许写入) - 确认添加
(4) 配置 SSH 客户端,在
~/.ssh/config文件里添加以下内容
1 | Host github-deploy |
- (5) 测试 SSH 连接认证,如果看到以下内容,则说明 SSH 认证成功
1 | ssh -T github-deploy |
1 | Hi your_username! You've successfully authenticated, but GitHub does not provide shell access. |
- (6) 更改 Git 远程仓库 URL,如果 GitHub 仓库是 HTTPS 方式,需要修改为 SSH 方式
1 | git remote set-url origin git@github.com:your_username/your_repo.git |
- (7) 免密 Push 代码,以后在 Linux 服务器上执行自动化 Push 时,就不会再要求输入密码或 Token 了
1 | git push origin main |
使用 Git Credential Helper
如果不想使用 SSH,而是使用 HTTPS,那么可以让 Git 记住 Token,以此实现免密 Push 代码。
- (1) 更改 Git 远程仓库 URL,如果 GitHub 仓库是 SSH 方式,需要修改为 HTTPS 方式
1 | git remote set-url origin https://github.com/your_username/your_repo.git |
- (2) 让 Git 将凭据存储在本地的纯文本文件中,这样下次 Git 访问同一个远程仓库时,会自动使用该凭据进行身份验证
1 | # 局部设置 |
- (3) 免密 Push 代码,首次 Push 会要求输入 Token,并且 Git 会自动将 Token 存储在本地文件中,后续 Push 不再需要输入 Token
1 | git push origin main |
提示
- 当 GitHub 仓库使用 HTTP 方式时,如果不想每次在 Push 代码时输入 Token,还可以直接在仓库的远程 URL 中嵌入 Token,如下所示:
git remote set-url origin https://<TOKEN>@github.com/your_username/your_repo.git,需要替换<TOKEN>为你自己的 GitHub Token。
Emoji 表情包
Emoji 使用说明
不经意发现在大神的 GitHub 项目上,Git 的提交信息竟然有 Emoji 前缀,相当鹤立鸡群、别具一格,感觉挺有趣的。个人认为这样做有三点好处,后两点尤为重要:
- Emoji 比较呆萌,能美化提交记录和 GitHub 页面;
- Emoji 作为标签,能很好的对提交记录分门别类,方便整理;
- Emoji 蕴含的丰富语义和情绪,能提高提交信息的可读性、可理解性,增强提交历史的阅读体验;

Emoji 的用法很简单,在 git commit 时如下书写提交信息,用 :smile: 即可插入一个笑脸 Emoji:
1 | git commit -am ':smile: 重构代码' |
Emoji 除了可以在 Git 提交时使用,还可以在 README.md 、GitHub Issues 和 GitHub Wiki 中直接使用 Emoji。这里整理出常用的 Emoji 列表:

Emoji 资源推荐
仓库搜索范围
提示
在下面介绍的 GitHub 高级搜索语法中,关键字都可以有多个,只需要使用空格符分隔即可。
in 关键字搜索
搜索格式:
关键字 in:name | description | readme
搜索示例:
xxx in:name:搜索项目名称含有 xxx 的xxx in:description:搜索项目描述含有 xxx 的xxx in:readme:搜索项目的 README 文件中包含 xxx 的
组合搜索案例
xxx in:name,readme:搜索项目的名称和 README 文件中都包含 xxx 的
限定编程言搜索
搜索格式:
关键字 language:编程语言
搜索示例:
game language:C++:搜索 C++ 开发的游戏项目multiplayer server language:C++:搜索 C++ 开发的多人游戏服务器项目
awesome 加强搜索
搜索格式:
awesome 关键字
搜索示例:
awesome books:搜索优秀的 PDF 电子书项目awesome c++:搜索优秀的 C++ 相关的项目,包括框架、学习教程、PDF 电子书等
提示
awesome加强搜索一般用来搜索学习工具、学习教程、PDF 书籍类相关的项目
stars 或 fork 数量关键字搜索
starts 数量关键字搜索
搜索格式:
- 格式一:
关键字 stars:>或者:>=数字 - 格式二:
关键字 stars:数字1..数字2
- 格式一:
搜索示例:
redis stars:>=5000:搜索 stars 数大于等于 5000 的 Redis 项目redis stars:3000..5000:搜索 stars 数在 3000 ~ 5000 之间的 Redis 项目
fork 数量关键字搜索
搜索格式:
- 格式一:
关键字 fork:>或者:>=数字 - 格式二:
关键字 fork:数字1..数字2
- 格式一:
搜索示例:
redis fork:>=5000:搜索 fork 数大于等于 5000 的 Redis 项目redis fork:3000..5000:搜索 fork 数在 3000 ~ 5000 之间的 Redis 项目
stars 与 fork 数量关键字组合搜索
- 组合搜索案例
redis stars:>1000 forks:500..1000:搜索 stars 数大于 1000,且 fork 数在 500 ~ 1000 之间的 Redis 项目
GitHub 使用技巧
高亮显示某行代码
高亮显示某个源文件的某一行代码
- 使用格式:
URL 地址后面紧跟 #L数字 - 使用案例:
https://github.com/huangzworks/redis-3.0-annotated/blob/unstable/src/cluster.c#L164
- 使用格式:
高亮显示某个源文件的多行代码
- 使用格式:
URL 地址后面紧跟 #L数字-L数字 - 使用案例:
https://github.com/huangzworks/redis-3.0-annotated/blob/unstable/src/cluster.c#L164-L179
- 使用格式:
项目内快速搜索文件
在 GitHub 项目(Repo)的页面中,使用快捷键 t,可以开启项目文件的快捷搜索,如下图所示:

GitHub 快捷键使用手册
搜索某个地区内的技术大佬
搜索格式:
- 格式一:
location:地区 - 格式二:
language:编程语言
- 格式一:
搜索示例:
location:beijing language:java:搜索位于北京,使用 Java 语言的技术大佬
常用的 Git 可视化工具
常用的 .gitignore 文件模板
Github 的约定式提交规则
GitHub 填写提交信息时,通常使用基本格式:<type>(<scope>): <subject>,这叫做 Conventional Commits(约定式提交),也叫 Conventional Commit 规范。
提交示例:
1
2feat: 添加开奖历史列表页
fix(index): 修复开奖号码颜色显示错误type:提交类型(必填)scope:影响范围(可选),如index、apisubject:简短描述(必填)
提交类型:
提交类型(type) | 含义 | 示例 |
|---|---|---|
feat | 新功能 | feat: 添加开奖历史列表页 |
fix | 修复 Bug | fix: 修复日期格式显示错误 |
docs | 仅文档变更 | docs: 更新 README 目录结构说明 |
style | 代码格式(不影响逻辑),如空格、分号 | style: 统一 SCSS 缩进 |
refactor | 重构(既不是添加新功能,也不是修复 Bug) | refactor: 抽离开奖数据获取逻辑 |
perf | 性能优化 | perf: 减少首页重复渲染 |
test | 添加或修改测试 | test: 补充 LotteryResultCard 单元测试 |
build | 构建系统或外部依赖变更 | build: 升级 Taro 到 4.2.0 |
ci | CI 配置变更 | ci: 添加 GitHub Actions 构建流程 |
chore | 其他杂项(不改 src/test 源码) | chore: 更新 .gitignore |
revert | 回滚某次提交 | revert: revert "feat: 添加历史开奖页" |
- 补充说明:
- 最常用的提交类型是
feat和fix,日常开发基本够用。 - 带
!表示破坏性变更,例如:feat!: 重构开奖数据 API 响应结构。
- 最常用的提交类型是
拉取 GitHub 项目的 WiKi 页面
- Git 命令的语法:
1 | git clone git@github.com:<YOUR_USERNAME>/<YOUR_PROJECT_NAME>.wiki.git |
- Git 命令的示例:
1 | git clone git@github.com:alibaba/spring-cloud-alibaba.wiki.git |
Github Readme 动态生成统计数据
开源项目
使用示例
1 | <img height="165em" src="https://github-readme-stats.vercel.app/api?username=rqh656418510&show_icons=true&hide_title=true&hide_border=true" /> |
1 | <img height="165em" src="https://github-readme-stats-fast.vercel.app/api?username=rqh656418510&show_icons=true&hide_title=true&hide_border=true" /> |
1 | <img height="165em" src="https://github-profile-summary-cards.vercel.app/api/cards/stats?username=rqh656418510&theme=github" /> |
