github是目前使用最广的开/闭源代码托管网站,掌握对其使用对我们日常工作学习是很有必要的,下面对其深入使用进行如下总结,
GitHub 仓库的主页是一个集中展示仓库信息和活动的地方,以下是您提到的各个部分的简要说明:
Code:
- 这个部分显示了仓库的代码,包括分支、提交历史、文件结构等。
- 可以浏览和搜索代码,查看特定文件或提交。
Pull requests:
- 显示了所有打开的和合并的拉取请求(Pull Request,PR)。
- 拉取请求是 GitHub 上代码审查和合并的主要方式。
Actions:
- 显示了 GitHub Actions 的概览,包括工作流程的运行状态和历史。
- 可以查看哪些工作流程正在运行,哪些已经完成,以及它们的输出和日志。
Projects:
- 显示了与该仓库关联的项目板,项目板是一种组织和跟踪工作的工具。
- 可以创建看板、列和卡片来管理任务和里程碑。
Wiki:
- Wiki 是一个协作空间,用于编写和分享有关项目的文档。一般只有比较大型的项目才有维基,比如vscode。vscode的维基是给专业人士看的,告诉人们应该怎么贡献代码,如何写vscode插件等等,但是也有的项目的维基是给用户看的,因项目而异。
- 可以包含指南、API 文档、FAQ 等。
Security:
- 这个部分提供了仓库的安全概览,包括依赖项的安全警报和安全策略。
- 可以查看安全漏洞、配置安全设置和访问建议。
Insights:
- 提供了仓库的分析和可视化,如贡献者图表、代码频率、提交活动等。
- 可以帮助理解仓库的活动和贡献者模式。
Settings :
选项卡用于配置仓库的设置。在这里,你可以:
- 管理仓库的基本信息(名称、描述、URL)。
- 设置分支保护规则。
- 配置 Webhooks 和集成服务。
- 管理团队和权限。
- 配置 GitHub Pages 部署。
每个部分都是 GitHub 仓库管理的重要组成部分,它们共同提供了一个全面的视图,帮助开发者、维护者和贡献者更好地协作和管理项目。下面对github的一些不常见使用具体总结如下:
(1) CI/CD
下面对Actions的使用进行如下总结。
GitHub Actions 是 GitHub 提供的一种 CI/CD 工具,用于自动化软件开发工作流。它允许你在代码仓库中定义和运行自定义的自动化任务,如构建、测试和部署。结合官方以及第三方提供的actions,组合action来实现一些你能做到的其他事情,比如抓取代码、运行测试、登录远程服务器,发布到第三方服务等等。以下是 GitHub Actions 的基本使用总结:
0. 基本概念
- workflow (工作流程):持续集成一次运行的过程,就是一个 workflow。
- job (任务):一个 workflow 由一个或多个 jobs 构成,含义是一次持续集成的运行,可以完成多个任务。
- step(步骤):每个 job 由多个 step 构成,一步步完成。
- action (动作):每个 step 可以依次执行一个或多个命令(action)。
1. 创建 GitHub Actions 工作流
workflow(工作流)必须存储在你的github项目库路径下的 .github/workflows 目录中,每一个 workflow描述了一个自动化任务,对应一个具体的.yml 文件。GitHub 会检索.github/workflows目录里面的.yml文件,并按照设定的规则定时或监听触发条件运行。workflow的使用可以参考官方文档:https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
2. 工作流文件结构
一个典型的工作流文件包含以下几个部分:
- name: 工作流的名称。
- on: 触发工作流的事件,也可以是事件的数组(例如
push,pull_request)。 - jobs: 工作流中的一个或多个作业,每个作业包含多个步骤。
比如
name: CI
on: [push]
jobs:
first_job:
name: My first job
timeout-minutes: 30
runs-on: ubuntu-latest
steps:
- name: first_step
env:
START_STR: Hi there! My name is
USER_NAME: Ber
END_STR: Thank you
run: |
echo $START_STR $USER_NAME $END_STR.
second_job:
name: My second job
needs: first_job
timeout-minutes: 45
runs-on: macOS-latest
third_job:
name: My third job
needs: [first_job, second_job]
timeout-minutes: 60
runs-on: windows-latest
其中jobs字段包含first_job和second_job两项任务,job_id分别是first_job、second_job和third_job。
needs:设定当前任务的执行依赖关系,即执行运行顺序,此jobs的执行顺序:first_job、second_job、third_job。
timeout-minutes:每个任务默认超时时间最长为 360分钟,通过timeout-minutes自定义设置任务最长执行时间。
runs-on:指定运行所需要的虚拟机环境。必填字段 有三种系统选择,具体版本如下
- ubuntu-latest,ubuntu-18.04或ubuntu-16.04
- windows-latest,windows-2019或windows-2016
- macOS-latest或macOS-10.14
steps:steps字段指定每个 Job 的运行步骤,可以包含一个或多个步骤。每个步骤都可以指定name、run、env、id、uses、with、continue-on-error、continue-on-error字段。
- name: 步骤名称
- env: 该步骤所需的环境变量
- run: 该步骤运行的命令,如上面的例子:bash输出环境变量
- id : 每个步骤的唯一标识符
- uses : 使用哪个 action
- with : 指定某个 action 可能需要输入的参数
- continue-on-error : 设置为 true 允许此步骤失败 job 仍然通过
- timeout-minutes : step 的超时分钟数
3. 触发事件
工作流可以在多种事件下触发,例如:
push:代码推送到仓库时触发。pull_request:创建拉取请求时触发。schedule:按照计划任务(CRON 表达式)触发。workflow_dispatch:手动触发。
4. 作业和步骤
- 作业(jobs):一个工作流可以包含多个作业,每个作业可以并行或顺序执行。作业可以在不同的运行器环境中执行(如
ubuntu-latest,windows-latest,macos-latest)。 - 步骤(steps):每个作业由多个步骤组成,每个步骤可以运行一个命令或使用一个动作(action)。
5. 使用动作(actions)
动作是可重用的独立命令,官方和社区提供了大量预定义的动作。你可以在工作流中直接使用这些动作。例如,actions/checkout 用于签出代码,actions/setup-python 用于设置 Python 环境。可以在 https://github.com/marketplace?type=actions 来查找可用的 action。
6. 环境变量和密钥
- 环境变量:可以在工作流文件中使用
env关键字设置环境变量。 - 密钥(Secrets):用于存储敏感信息(如 API 密钥),可以在 GitHub 仓库的设置中配置,并在工作流中使用。
当使用workflow时,一些不能公开的密码、token等,可以使用Secrets 进行保存,在项目仓库中settings->Secrets ->new repository secrets,在worflow中通过${{ }}可以获取上下文环境变量、检查函数以及Secrets 中秘钥。
7. 示例:部署到 GitHub Pages
以下是一个示例工作流,演示如何在每次代码推送到 main 分支时自动构建和部署到 GitHub
name: Deploy to GitHub Pages
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install dependencies
run: npm install
- name: Build project
run: npm run build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist
GitHub Actions 提供了强大的 CI/CD 功能,可以在各种事件触发下自动化执行各种任务。通过定义工作流文件,你可以实现代码构建、测试、部署等自动化操作,从而提高开发效率和代码质量。
(2)管理个人资料自述文件
可以通过创建个人资料 README,在 GitHub 上与社区分享有关你自己的信息。 GitHub 在个人资料页面的顶部显示您的个人资料自述文件。您决定在个人资料自述文件中包含哪些信息,因此您可以完全控制如何在 GitHub 上展示自己。 以下是访客可能在您的个人资料自述文件中找到感兴趣、有趣或有用信息的一些示例。
- “About me(关于我)”部分介绍您的工作和兴趣。
- 您引以为豪的贡献以及这些贡献的背景信息
- 在您参与的社区获得帮助的指南
具体操作如下,
-
在任何页面的右上角,选择 ,然后单击“新建存储库”。

-
在“Repository name(仓库名称)”下,输入与您的 GitHub 用户名匹配的仓库名称。 例如,如果您的用户名是 "octocat",则仓库名称必须为 "octocat"。
-
(可选)在“描述”字段中键入存储库的描述。 例如,“My personal repository(我的个人仓库)”。
-
选择“公共”。
-
选择“使用 README 初始化此存储库”。
-
单击“创建存储库”。
-
在右边栏上方,单击“编辑自述文件”。
生成的自述文件用模板预先填充,为您创建个人资料自述文件提供一些启发。对于初始化的README.md文件可以参考该项目实现https://github.com/kautukkundan/Awesome-Profile-README-templates
(3) 部署个人网站
要使用GitHub 搭建个人网站,需要创建一个名为 username.github.io 的仓库,其中 username 是你的GitHub 用户名。然后,将你的网站内容(HTML、CSS、JavaScript)放置在该仓库中,并将其设置为公开。接下来,在仓库的“Settings” (设置) 页面中找到并配置GitHub Pages,选择一个发布源(例如,main 分支或 docs 文件夹)。最后,访问 username .github.io 即可查看你的网站。
以下是更详细的步骤:
-
1. 创建仓库:
- 登录GitHub 账号,点击右上角的“+”号,选择“New repository” (新建仓库)。
- 仓库名称必须为
username.github.io(将username替换为你的GitHub 用户名)。 - 选择仓库可见性(公开或私有,GitHub Pages 需要公开仓库)。
- 可以选择“Initialize this repository with a README” (使用README 初始化此仓库)。
- 点击“Create repository” (创建仓库)。
-
2. 配置GitHub Pages:
- 进入你刚创建的仓库。
- 点击“Settings” (设置) 按钮。
- 在左侧边栏找到并点击“Pages”。
- 在“Build and deployment” (构建和部署) 部分,找到“Source” (来源) 设置。
- 选择一个发布源:通常是
main分支或docs文件夹。 - 点击“Save” (保存)。
-
3. 部署你的网站:
- GitHub Pages 会自动检测并构建你的网站。
- 访问
username.github.io(或自定义域名,如果已配置) 即可查看你的网站。
-
4. 可选:自定义域名:
- 如果你想使用自定义域名,需要在仓库根目录下创建一个名为
CNAME的文件。 CNAME文件中写入你的自定义域名,例如www.example.com。- 在你的域名提供商(如阿里云、腾讯云等) 处配置DNS 记录,将域名指向
username.github.io。
- 如果你想使用自定义域名,需要在仓库根目录下创建一个名为
通过以上步骤,你就成功地使用GitHub 搭建了一个免费的个人网站。具体的可以参考项目https://github.com/academicpages/academicpages.github.io
(4) 其他
1 .github 仓库(组织/用户级别配置仓库)
用途:为组织/用户下的所有仓库统一配置默认模板和流程。
特别适用于组织用户(例如企业、开源组织等)
-
可配置:
-
ISSUE_TEMPLATE/:默认的 issue 模板 -
PULL_REQUEST_TEMPLATE.md:默认的 PR 模板 -
FUNDING.yml:GitHub Sponsor 设置 -
CODEOWNERS:默认代码拥有者 -
workflow/:组织级共享 GitHub Actions 流程
-
2. gh-pages 分支(不是仓库,而是特殊分支)
用途:用于部署 GitHub Pages 静态网站
-
在任意仓库中创建
gh-pages分支,就可以让该仓库的内容部署成网页。 -
示例用途:
-
文档网站(如 Docusaurus)
-
Jupyter Notebook 转换为网页
-
模型展示 Demo
-
3. template 仓库
用途:作为项目模板供他人基于此快速创建新仓库。
-
在仓库设置中勾选 “Template repository”
-
任何人点击 “Use this template” 即可复制结构开始开发
-
适用于 boilerplate、starter-kit、CI模板项目
4. dotfiles 仓库(约定俗成)
用途:用于管理个人配置文件,如 .bashrc, .vimrc, .zshrc 等
-
GitHub 社区惯例,命名为
dotfiles -
结合 Git 工具,可以跨机器同步个人开发环境
5. security 仓库(或 SECURITY.md 文件)
用途:声明项目的安全策略或报告方式
-
文件通常位于项目根目录或
.github/SECURITY.md -
GitHub 会自动识别并在“Security”页面展示报告入口
6. awesome-* 仓库
用途:开源界常见的资源汇总仓库
-
按惯例命名如:
awesome-python,awesome-cv,awesome-ai等 -
GitHub 会自动添加“Curated List”标签(但这不是 GitHub 特性,而是社区约定)
7. Fork 仓库
用途:派生自其他项目的副本仓库
-
会带有 “forked from” 标识
-
可用于提交 PR、修改实验,不影响原仓库
-
注意:Fork 仓库默认不支持 GitHub Pages 部署,需手动启用
今天针对github的学习就先到这,下面是我的个人github仓库链接https://github.com/Albert337,有问题欢迎issue和star。
参考链接:
1、如何利用github action实现自动构建、打包部署-腾讯云开发者社区-腾讯云
2、GitHub项目、代码搜索、使用等技巧_gitcode怎么搜索-CSDN博客
3、https://zhuanlan.zhihu.com/p/664195515
4、Github: Github actions自动化工作原理与多workflow创建和部署-CSDN博客
5、【Github Action】这篇文章教会你如何开发Github Action,并且让你明白它是什么,怎么用,如何做到的。-CSDN博客
7377

被折叠的 条评论
为什么被折叠?



