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 项目
高亮显示某行代码
高亮显示某个源文件的某一行代码
- 使用格式:
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 语言的技术大佬
拉取 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 |