如何让Hugging Face Spaces复用现有GitHub ML仓库?遇推送权限错误
解决Hugging Face Spaces推送权限错误的方案
一、本地推送的权限修复
出现这个错误的核心是本地Git未正确配置Hugging Face的访问权限,按以下步骤处理:
- 生成Hugging Face写入令牌:登录Hugging Face账号,进入「Settings」→「Access Tokens」,创建新令牌时勾选write权限,保存好生成的令牌字符串
- 本地登录验证:在终端执行
huggingface-cli login,输入刚才的令牌完成登录;或者直接修改Git远程仓库URL,把凭证嵌入其中:git remote set-url spaces https://<你的Hugging Face用户名>:<你的令牌>@huggingface.co/spaces/mohit-raghavendra/gt-policy-bot - 重新推送:确保权限配置正确后,执行
git push spaces main(如果需要覆盖Space仓库现有内容,加--force参数)
二、更省心的GitHub Actions自动同步方案
既然你本来就想用GitHub Actions,完全不需要手动本地推送,直接配置自动同步:
- 在GitHub仓库的「Settings」→「Secrets and variables」→「Actions」中,新增一个名为
HF_TOKEN的Secret,值为你生成的Hugging Face写入令牌 - 在GitHub仓库根目录创建
.github/workflows/deploy-to-hf-spaces.yml文件,写入以下内容:
name: Deploy to Hugging Face Spaces on: push: branches: [ main ] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Push to Hugging Face Spaces uses: huggingface/huggingface-js@main with: token: ${{ secrets.HF_TOKEN }} repo: spaces/mohit-raghavendra/gt-policy-bot branch: main folder: ./
- 提交这个文件到GitHub仓库,之后每次往main分支推送代码,GitHub Actions都会自动把代码同步到你的Hugging Face Space,全程无需手动操作
额外注意事项
- 确认你的Hugging Face Space选择的是Gradio环境(创建Space时选Gradio模板,或Space仓库的README.md里标注了Gradio作为应用框架)
- 检查
requirements.txt里的依赖是否完整,Hugging Face Spaces会自动读取并安装这些依赖 - 如果之前推送失败导致仓库有冲突,可先拉取Space仓库的代码合并后再推送:
git pull spaces main --allow-unrelated-histories
内容的提问来源于stack exchange,提问作者Mohith mithra
相关产品推荐
相关产品推荐

