GitHub 使用
GitHub
介绍
全球最大的代码托管平台,也是一个社区
也可以托管 Gist 代码片段
团队协作开发平台:有完善的协作功能 (Fork, Issue, Pull Request) 等功能
提供免费的静态网站托管服务 GitHub Pages
GitHub 每个仓库的总体积限制是 1GB(Gitee 是 500MB),每个仓库中每个 release 的最大文件体积限制是 2GB(Gitee 是 1GB);release 数量没有明确的限制;对于普通用户,仓库(仓库代码 + release 文件)的总体积限制为 100 GB
参考资料
Git/GitHub 基础介绍:lec2.md
GitHub - tiimgreen/github-cheat-sheet: A list of cool features of Git and GitHub.
使用
工具
管理 GitHub Star(Star 的仓库数一多,5k+,无法查看 star 页面,老是出错)
- 移动端 GitHub App(可识别用户已创建的分类 tag)
- 【工具自荐】starflare 又一个管理 github star 的 web app · Issue #4732 · ruanyf/weekly · GitHub
- GitHub - cfour-hi/gitstars: Github Starred Repositories Manager(无法识别)
- Starflare(无法识别)
- Organize Your GitHub Stars With Ease - Astral
- GitHub - raythunder/github-stars-manager: 这是一个用来管理你的github stars的网页工具,它通过标签来管理和分类你的stars。所有的数据保存在你自己的github gists.
GitHub Cards - Showcase Your GitHub Contributions in 2024 into Stunning Visual Cards
在仓库所在链接后添加
stargazers
:查看GitHub仓库被谁star · Issue #15 · oneone1995/blog · GitHub汉化插件:GitHub - maboloshi/github-chinese: GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese)
命令行版本的 GitHub Dashboard:GitHub - dlvhdr/gh-dash: A beautiful CLI dashboard for GitHub 🚀
隐藏仓库中
Compare & pull request
的提示插件:GitHub - liuliangsir/compare-and-pull-request-prompt-box-killer-for-github: Automatically hides the “Compare & pull request” prompt box on GitHub repository pages显示/自定义 GitHub 通知:
浏览、打开、预览 GitHub 仓库中的 ipynb 文件
【工具自荐】一键查看 github 仓库树形图 · Issue #5272 · ruanyf/weekly · GitHub(一般)
GitHub - zanjie1999/githubBackup: 备份Github所有仓库(包括私仓)纯shell实现
生成最近的 PR 为网页:GitHub - leon-fong/prs: Explore historic Open Source Contributions
GitHub - hunshcn/gh-proxy: github release、archive以及项目文件的加速项目
GitHub Markdown
生成 TOC:
alert 语法
1 | > [!NOTE] |
GitHub 基本使用
- Repo 页面
- Issues 页面
- Pull requests 页面(简称 PR)
Pull Requests 流程:
- Fork(复刻) 该 Repo;
- git clone fork 的 Repo 到本地,进行代码修改并提交,会出现提交的 commit 相对原 Repo 的前后关系;
- 点击 “Contribute”,提一个 Pull Request 给原来的 Repo;
- 点击 “Sync fork”,同步原 Repo 最新代码。
- 改变 Repo 的 public private 状态:该 Repo 的 Settings - Danger Zone
- 设置自己的 activity 为 private:Settings - Public profile - Contributions & activity
GitHub Pages
GitHub Pages 介绍
- GitHub 提供的免费静态网页托管服务,类似的还有 Gitee Pages 和 GitLab Pages;商用:Vercel、Netlify、Cloudflare Pages 等
- GitHub 会为每个用户/组织分配一个二级域名
username.github.io
- 创建一个名为
username.github.io
的 repo,会作为主页,通过username.github.io
即可访问 repo 内存放的静态网页 - 对于其他 repo(可无限创建),也可以开启 Pages 功能,通过
username.github.io/repo-name
访问,静态页面来源也需要指定 - 部署时自动创建 gh-pages 分支:GitHub - peaceiris/actions-gh-pages
GitHub 个人首页
参考:美化 GitHub profile 教程:GitHub - rzashakeri/beautify-github-profile
创建名为 username 的 repo,在 README.md 文档中添加内容即可生成个人首页(profile),可以添加 GitHub 统计信息以丰富并自定义 profile。
可获取动态生成的 GitHub 统计信息的 repo:
- GitHub - anuraghazra/github-readme-stats
- GitHub - lowlighter/metrics(形式丰富,可使用 GitHub Actions)
- GitHub - jstrieb/github-stats
- GitHub - vn7n24fzkq/github-profile-summary-cards
- 生成并更新 WakaTime 统计数据:GitHub - matchai/waka-box
使用 github-readme-stats repo 部署的 vercel app API 会有次数限制,且只能访问公开 repo 的相关数据,导致统计信息不全。因此更建议 fork 该 repo,部署自己的 vercel app API(可以访问私有 repo 数据,参见 deploy-on-your-own;添加 PAT_1 环境变量时,注意需点击 Save 保存)
github-stats repo:使用 Github Acitons 生成 GitHub 统计信息卡片(生成速度较慢);克隆该 repo,删除 .git
,创建自己的 repo(非 fork),根据需要添加 EXCLUDED、EXCLUDED_LANGS 和 EXCLUDE_FORKED_REPOS secrets(创建这些 secrets 的方法:进入该 repo 的设置页面中的 “Secrets” 部分,创建新 secret)
profile 实例参考:
- GitHub - TonyCrane/TonyCrane
- sudoskys (Jasmine) · GitHub
- XYCode-Kerman (XYCode Kerman) · GitHub
- GitHub - Wybxc/metrics: 忘忧北萱草大合集!
- ayaka-icu/README.md at main · ayaka-icu/ayaka-icu · GitHub
标准 README.md 文件写法:GitHub - RichardLitt/standard-readme: A standard style for README files
优秀 README.md 文件:GitHub - matiassingers/awesome-readme: A curated list of awesome READMEs
GitHub Star history:GitHub Star History
1 | < img alt="Star History" loading="lazy" src="https://api.star-history.com/svg?repos=SamirPaulb/DSAlgo&type=Date"> |
GitHub contribution 可视化:
- GitHub - yoshi389111/github-profile-3d-contrib: This GitHub Action creates a GitHub contribution calendar on a 3D profile image.
- Leticia-maria/.github/workflows/profile-3d.yml at main · Leticia-maria/Leticia-maria · GitHub
- 贪吃蛇(只能使用 public contributions,见 Issue #88):snk
- (未测试)GitHub - jasineri/gitartwork: Gitartwork on user’s contribution graph
徽章
通常在 GitHub 的 README 文件或其他在线文档中显示以展示各种信息,如构建状态、测试覆盖率、包版本、许可证信息等。
徽章/ icon 相关 repo:
- GitHub - badges/shields
- GitHub - inttter/md-badges: An extensive list of Shields.io badges.
- GitHub - ziadOUA/m3-Markdown-Badges: 🏅 A Material You inspired markdown badge collection.
- skill 图标 icon:GitHub - tandpfun/skill-icons: Showcase your skills on your Github readme or resumé with ease ✨
- 统计 GitHub 中的 REDME、Issue、PR visitor 数量:Visitor Badge
- 可参考:README.rst
- Notes-for-Data-Structure/README.md at master · OE-Heart/Notes-for-Data-Structure · GitHub
Python 相关(使用 pypi)
1 | <!-- package 版本 --> |
GitHub Repo 相关(使用 github)
1 | <!-- star 数目 --> |
编程语言 logo(使用 badge)
1 | ![Python](https://img.shields.io/badge/-Python-3776ab?style=flat-square&logo=python&logoColor=fff) |
pre-commit
pre-commit:用于管理和维护 git 钩子的框架。允许配置多种钩子,这些钩子会在代码提交到仓库之前自动运行,以检查代码风格、格式化代码、检查语法错误(可用于 Python、Markdown、Shell)等。配置文件:.pre-commit-config.yaml
1 | # 安装 |
格式:
1 | repos: |
示例:
- .pre-commit-config.yaml
- https://github.com/jupyter/docker-stacks/blob/main/.pre-commit-config.yaml
- ZnFrame/.pre-commit-config.yaml at main · zincware/ZnFrame · GitHub
1 | exclude: '.git|.tox' |
GitHub Actions
- GitHub 提供的 CI/CD 服务:CI(Continuous Integration):持续集成;CD(Continuous Delivery):持续交付
- 即配置一些自动化任务,在特定事件发生时自动执行:如每次 push 后自动测试,release 时自动构建部署
- 配置文件:
.github/workflows/workflow_name.yml
;可以有多个.yml
文件
参考资料:
- github自动化 - 我是谁
- 使用 Github Action 自动部署 - 安知鱼
- GitHub Actions 入门教程 - 阮一峰的网络日志
- GitHub Actions工作流自动化的入门核心_哔哩哔哩_bilibili
- 内含 Github Action 计划任务语法:GitHub - xlc520/AutoGreen: 保持GitHub一直绿
具体示例:
- GitHub - sdras/awesome-actions: A curated list of awesome actions to use on GitHub
- 同步到 Gitee:gitee.yml、hub-mirror-action
- 自动发布 Release:release.yml
- 自动化发布 release:GitHub - release-it/release-it: 🚀 Automate versioning and package publishing
- Wakatime GitHub Actions 设置:OE-Heart/.github/workflows/main.yml at master · OE-Heart/OE-Heart · GitHub
GitHub CLI
1 | sudo apt install gh # Ubuntu |
- 源码编译安装
1 | # 安装 golang |
- 验证登录:按照提示进行
1 | gh auth login |
- 创建 release 并上传文件:file 格式可以是压缩文件,
pdf
,md
等,txt
不行
1 | gh release create v0.0.1 # 创建 release |
- 创建 issue
1 | gh issue create --title "gh issue test" --body "create an issue by gh" |
- GitHub Copilot CLI 使用(效果一般)
1 | # 安装 |
相关问题
GitHub feed 最新消息时间与电脑时间差 12 小时(移动端、网页均是次情况)
GitHub 桌面端不好用;移动端有探索功能
之前留言过的 GitHub issue,仍会收到后续通知, 如何关闭(在 GitHub 个人主页的 Notifications 处关闭)
GitHub Organization 删除后,90 天内该名字无法被使用
GitHub 添加 organization 成员(弄成课题组)