GitHub Pull Reques 时 Release 文件缺失问题解决方案 📦
问题背景 🤔
在提交 GitHub Pull Request 时,GitHub 提示最新的 Release 缺少 main.js
和 manifest.json
文件。尽管这些文件在代码中存在,但它们并没有作为 Release 附件上传到 GitHub。这个问题通常发生在用户没有手动将文件上传到 Release 页面。
问题描述 ⚠️
当用户创建一个新的 Release 版本时,系统会自动检查该版本的文件内容。如果文件没有正确上传到 Release 页面,会出现以下问题:
- 缺少文件:
main.js
和manifest.json
。 - 错误提示: “Your latest Release is missing the
main.js
file.” 和 “Your latest Release is missing themanifest.json
file.”
问题分析 🔍
GitHub Release 只会将附加文件(Assets)包含在 Release 页面中,文件需要手动上传。若忘记手动上传,尽管这些文件已存在于代码中,它们并不会自动出现在 Release 页面上。
解决步骤 🛠️
1. 检查 Release 页面
首先,检查当前 GitHub Release 页面,确保 main.js
和 manifest.json
是否已作为附件上传。
- 进入 GitHub 仓库的
Releases
页面。 - 查看最新的 Release 版本(如
1.0.0
)。 - 在 Release 页面中查看 Assets 部分,确认
main.js
和manifest.json
文件是否存在。
2. 删除现有 Release 并重新上传文件
如果确认缺少附件文件,可以按照以下步骤重新上传:
-
删除当前 Release 和对应的 Tag:
-
进入 GitHub Release 页面,删除已有的
1.0.0
Release。 -
在命令行中删除本地和远程的
1.0.0
tag:git tag -d 1.0.0 # 删除本地 tag git push origin --delete 1.0.0 # 删除远程 tag
-
-
重新创建 Release:
-
在命令行中为项目创建新的
1.0.0
tag:git tag -a 1.0.0 -m "Release version 1.0.0" git push origin 1.0.0 # 推送新 tag
-
进入 GitHub Release 页面,点击
Draft a new release
(创建新发布)。 -
在
Tag version
字段中选择1.0.0
,或者手动输入。 -
在 Assets 部分,点击
Attach binaries by dropping them here
或Browse files
,手动上传main.js
和manifest.json
文件。 -
完成后点击
Publish release
以发布 Release。
-
3. 确认 manifest.json
文件内容正确
确保 manifest.json
文件中的 version
字段与当前发布的版本号一致。例如:
{
"version": "1.0.0",
"name": "Markdown Highlight HTML",
"description": "A plugin for Obsidian"
}
如果文件中的版本号不一致,修改后提交更新:
git add manifest.json
git commit -m "Update manifest version"
git push origin main
4. 确保文件已提交至 Git 仓库
确认 main.js
和 manifest.json
文件是否已被提交到 Git 仓库。如果文件未被 Git 跟踪,无法上传到 Release:
-
检查文件是否已经添加到 Git 仓库:
git ls-files | grep "main.js\|manifest.json"
-
如果文件没有被添加,使用以下命令提交:
git add main.js manifest.json git commit -m "Add missing main.js and manifest.json" git push origin main
常见问题与解决方案 ❓
Q1: 如果 Release 页面没有显示文件,怎么办?
- 确认文件已正确上传至 Assets 区域。
- 确认文件名与代码中的文件名完全一致(GitHub 对文件名大小写敏感)。
Q2: 是否每次发布都需要手动上传文件?
- 如果没有自动化发布流程(如 CI/CD),则每次发布时需要手动上传文件。
- 对于频繁发布的项目,可以设置 CI/CD 工具(如 GitHub Actions)来自动上传 Release 文件。
Q3: 为什么 GitHub Release 页面不自动包含文件?
- GitHub Release 页面仅支持附件上传,需要手动上传文件。GitHub 不会自动将仓库中的文件附加到 Release 上。
总结 📌
创建 GitHub Release 时,确保所有需要的文件(如 main.js
和 manifest.json
)已正确上传到 Release 页面。这个过程需要用户手动将文件添加到 Release 的 Assets 部分。通过遵循上述步骤,用户可以确保 Release 正确发布,且包含所有必要的文件。