跳到主要内容

github

如何高效的通过github找到开源项目​

  • 可以通过高级搜索了解这些参数 :https://github.com/search/advanced

  • 基本参数

    • in:name example (名字中有“example”) in:readme example (readme中有“example”) in:description example ( 描述中有“example”)

    • stars:>1000 (star>1000 )
      forks:>1000 ( fork>1000 ) pushed:>2019-09-01 (2019年9月1日后有更新的)

      language:java (用Java编写的项目)

gitHub 仓库域名后面加上 1s​

  • 就能在浏览器里面使用 VS Code 环境来阅读这个仓库的源码!

  • 就在仓库的域名后加个 1s,就能用支持语法高亮、代码重构的 VS Code 来阅读源码

这是为什么呢?背后发生了什么呢?

这依赖于 GitHub 上星标 15.3k 的一个仓库——名叫 Github1s,基于 VS Code 1.52.1,一个支持在浏览器里面直接工作的版本

在线运行项目​

  • 在项目地址前面加上 : gitpod.io/#/
text
https://gitpod.io/#/github.com/qiuweikangdev/taro-react-table

1、自动识别项目类型、自动安装依赖,启动项目

2、可以把网页的远程服务器当成自己的电脑来使用

定制你的GitHub主页​

  • 在 GitHub 中创建一个与 GitHub ID 同名的仓库
  • 创建时记得勾选从下方的「Add a README file」
  • 在仓库中添加一个 README 的 Markdown 文件,等会我们就是要在这个文件中创建我们最终想要的个人主页样式
  • 创建仓库之后,点击右上角的个人头像,选择「Your profile」回到你的 GitHub 主页,你应该就可以看到 Hi there 的文本内容
  • 点击右侧的编辑按钮,进入 REMDME 文件的编辑状态。
  • 进入编辑状态,这个文档是使用 Markdown 语法来编辑的
    • 只需要记住一点,上一行结束时,要在最末尾加多至少两个空格,才能实现换行,否则本来想分行的两行内容会连在一起
  • 编辑的过程中,点击上方的「Preview changes」选项卡,查看 Markdown 渲染后的效果

个人主页中一个看起来比较高级的「小牌子」的实现方法

  • 小牌子其实是一个 svg 图片,生成这个 svg 图片需要用到一个在线工具「http://Shields.io」

定制github首页-自动更新Github的star数量

图标Icon

操作github的api​

  • @octokit/rest
  • @octokit/auth-token

@octokit/rest 和 @octokit/auth-token 用于与 GitHub API 进行交互, 可以轻松集成 GitHub 功能

创建或更新文件内容​

  • octokit.repos.createOrUpdateFileContents
bash
octokit.repos.createOrUpdateFileContents({
owner: 'owner', // 用户名
repo: 'repository', // 仓库
path: 'file/path.txt', // 创建的文件路径
message: 'Commit message', // commit
content: 'File content', // 更新后的文件内容,需要进行base64编码。
branch: 'main', // 分支
});

创建新文件​

js
octokit.repos.createFile({
owner: 'owner',
repo: 'repository',
path: 'file/path.txt',
message: 'Commit message',
content: 'File content',
branch: 'main',
});

删除文件​

js
octokit.repos.deleteFile({
owner: 'owner',
repo: 'repository',
path: 'file/path.txt',
message: 'Commit message',
branch: 'main',
});

获取commit列表​

js
// 获取commit记录列表
const getCommitsList = async () => {
try {
const { defaultBranch } = await getRepoInfo();
const { data } = await octokit.repos.listCommits({
owner: username,
repo: repositoryName,
ref: defaultBranch,
});
return data;
} catch (e) {}
};

github-cli​

常用的GitHub-cli命令​

场景命令作用
登录gh auth login登录 GitHub
查看登录状态gh auth status查看当前是否已登录
克隆仓库gh repo clone owner/repo克隆 GitHub 仓库
查看仓库gh repo view查看当前仓库信息
创建仓库gh repo create创建 GitHub 仓库
查看 PRgh pr list查看 Pull Request 列表
创建 PRgh pr create创建 Pull Request
查看 PR 详情gh pr view查看 PR 详情
合并 PRgh pr merge合并 PR
查看 Issuegh issue list查看 Issue 列表
创建 Issuegh issue create创建 Issue
查看 Actiongh run list查看 GitHub Actions 运行记录
查看 Action 日志gh run view --log查看 Actions 日志
重新运行 Actiongh run rerun <run-id>重新运行某次 Actions
查看 Releasegh release list查看 Release 列表
创建 Releasegh release create v1.0.0创建 Release
编辑 Releasegh release edit v1.0.0编辑 Release
上传发布文件gh release upload v1.0.0 app.dmg上传 Release 附件
下载发布文件gh release download v1.0.0下载 Release 附件
删除 Releasegh release delete v1.0.0删除 Release

Release 发布常用命令​

  • notes-file参数表示,从指定文件读取发布说明内容,并写入 GitHub Release 的正文区域。
bash
# 创建 release
gh release create v1.0.0 --title "v1.0.0" --notes "发布说明"

# 使用文件作为 release 正文
gh release create v1.0.0 --notes-file RELEASE_NOTES.md

# 编辑 release 正文
gh release edit v1.0.0 --notes-file RELEASE_NOTES.md

# 上传安装包
gh release upload v1.0.0 dist/app.dmg dist/app.exe

# 查看 release
gh release view v1.0.0

# 删除 release
gh release delete v1.0.0