求助:GitHub Actions FTP部署报错‘fatal: Not a Git project? Exiting...’
排查「fatal: Not a Git project? Exiting...」错误的方案
1. 检查actions/checkout步骤是否正确配置
FTP部署动作依赖仓库的Git元数据,首先确保你的工作流开头已经正确拉取了仓库代码:
- name: Checkout code uses: actions/checkout@v4
如果之前配置了fetch-depth: 1(浅克隆),尝试改成fetch-depth: 0拉取完整仓库历史,部分FTP动作需要完整的Git提交记录才能正常工作。
2. 验证FTP-Deploy-Action的同步根目录设置
错误日志显示Using syncroot ./ if exists,确认工作流中sync_root参数是否指向仓库根目录。如果误设为子目录,动作会在子目录执行Git命令,而子目录没有.git文件夹,就会触发错误。确保配置类似:
- name: FTP Deploy uses: SamKirkland/FTP-Deploy-Action@v4.3.4 with: sync_root: ./ # 其他参数...
3. 调试工作目录结构
在工作流中添加调试步骤,确认runner环境中是否存在.git文件夹:
- name: Debug workspace run: | pwd ls -la ls -la .git || echo ".git folder not found"
运行后查看日志,如果.git文件夹不存在,说明checkout步骤没有正确拉取仓库,需要排查该步骤的配置或权限问题。
4. 锁定FTP-Deploy-Action的版本
既然之前工作流正常,可能是Action版本更新引入了兼容性问题。尝试指定一个稳定的旧版本(比如v4.3.4)代替@latest,看是否能恢复正常。
5. 排查是否有清理步骤删除了.git文件夹
检查工作流中是否有后续步骤执行了删除.git的操作(比如某些构建或清理脚本),如果有,调整顺序确保FTP部署动作在清理之前执行。
内容的提问来源于stack exchange,提问作者fuz_0751471
相关产品推荐
相关产品推荐

