tips-git
基本
graph LR subgraph 1 direction LR a(workspace) --add--> b(index) --commit--> c(repository) --push--> d(remote) d --pull--> a d --clone--> c c --checkout--> a end subgraph 2 a(workspace) --stash --> e(stash) e -- stash pop --> a end
一些case
取消跟踪文件
众所周知,在.gitignore中添加文件名称,可以避免添加“脏东西”到git仓库中
但如果已经添加了“脏东西”,那么在gitignore中再添加名称也没用了
需要手动取消跟踪:git rm --cached file-name
重新跟踪文件
这个case比较特殊,有次在一个本地Github仓库的子目录中clone其它仓库,然后一顿敲代码后,直接add & commit。然而并没有删除克隆仓库的.git文件,导致git认为克隆仓库的文件夹是一个模块(表现为github网页中文件夹有向右的白色箭头),所以并没有将模块文件夹添加到仓库中(没有跟踪模块文件夹)。
过了很久,我打开Github仓库的网页,突然发现这个目录是无法打开的。悲剧了,之前在这个目录上的所有修改都没有被commit。这是一个悲伤的故事。
解决办法也是同样用到了git rm --cached file-name
命令
- 删除.git文件夹
- 取消跟踪
git rm --cached themes/butterfly
- 重新跟踪
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 | on: |
Q&A
remote: Write access to repository not granted.
- 解决方案:打开这个GitHub仓库的设置中GitHub Actions的写权限
- Settings - Actions - General - Workflow permissions - Read and Write permissions