基本

一些case

取消跟踪文件

众所周知,在.gitignore中添加文件名称,可以避免添加“脏东西”到git仓库中

但如果已经添加了“脏东西”,那么在gitignore中再添加名称也没用了

需要手动取消跟踪:git rm --cached file-name

重新跟踪文件

这个case比较特殊,有次在一个本地Github仓库的子目录中clone其它仓库,然后一顿敲代码后,直接add & commit。然而并没有删除克隆仓库的.git文件,导致git认为克隆仓库的文件夹是一个模块(表现为github网页中文件夹有向右的白色箭头),所以并没有将模块文件夹添加到仓库中(没有跟踪模块文件夹)。

过了很久,我打开Github仓库的网页,突然发现这个目录是无法打开的。悲剧了,之前在这个目录上的所有修改都没有被commit。这是一个悲伤的故事。

解决办法也是同样用到了git rm --cached file-name命令

  1. 删除.git文件夹
  2. 取消跟踪git rm --cached themes/butterfly
  3. 重新跟踪git add .,此时可以发现文件夹已经被添加到仓库了

GitHub Authentation

SSH key

not success in step: ssh -T git@github.com

Personal access tokens

this token like password

when the first time we clone repository using terminal, it will ask our username and password, and then we can input our username and token(password not avaiable now)

But it’s uncomfortable if we need input username and token everytime clone repo. To avoid this, we can remember them locally by using git config --global credential.helper store

GitHub Actions

GitHub Actions 是 GitHub 提供的一项自动化服务,允许你在代码仓库中执行自定义的工作流程。通过 GitHub Actions,你可以设置触发条件,例如推送代码、创建 Pull Request 或发布 Release 等,然后在满足条件时执行自定义的任务。

YAML文件

工作流程由一个或多个任务组成,这些任务定义在仓库中的 .github/workflows 目录下的 YAML 文件中。这些文件包含了触发条件、任务列表、环境变量等信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
on:
schedule: # 定时触发
- cron: "0 0 * * *"
workflow_dispatch: # 手动触发(在GitHub Actions页面中)

jobs:
backup: # job名称
runs-on: ubuntu-latest # 运行系统

steps:
- name: Checkout code # 步骤名称
uses: actions/checkout@v2 # 使用actions集成的服务

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.8

- name: Run backup script
run: | # 运行命令
pip install requests
python backup_script.py

Q&A

  • remote: Write access to repository not granted.
    • 解决方案:打开这个GitHub仓库的设置中GitHub Actions的写权限
    • Settings - Actions - General - Workflow permissions - Read and Write permissions