You need to enable JavaScript to run this app. .git-ftp-ignore未忽略文件夹,如何清理git-ftp缓存?
优惠活动
大模型
产品
解决方案
定价
更多

.git-ftp-ignore未忽略文件夹,如何清理git-ftp缓存?

解答

首先明确结论:git-ftp 没有类似 Git 本地暂存区的缓存设计,不存在git rm -r --cached类的本地清缓存命令。它判断待上传文件的依据是存储在 FTP 远端根目录的.git-ftp.log文件,文件内记录了上次成功推送的 Git Commit Hash,工具通过比对该 Hash 与当前目标 Commit 的差异,结合忽略规则生成上传列表。

规则持续不生效、scss文件夹重复上传,基本是忽略规则语法错误或流水线配置问题,按以下步骤处理:

1. 修正忽略规则

.git-ftp-ignore使用逐行正则匹配,语法和.gitignore的 glob 规则不通用,照搬.gitignore写法是最常见的失效原因。

要精确忽略仓库根目录下的整个scss文件夹,规则必须写为:

^scss/

注意事项:

  • 开头的^是正则起始锚点,确保仅匹配根目录下的scss,不会误伤其他层级的同名目录
  • 禁止写为/scss/、./scss/,开头的斜杠会被识别为普通字符,导致匹配失败
  • 确认文件名为.git-ftp-ignore(开头带点),存放在仓库根目录,且已提交到Git仓库(可通过git ls-files | grep git-ftp-ignore校验跟踪状态,避免文件本身被.gitignore排除导致流水线拉取不到)

提交修正后的规则后,后续提交中对scss的改动会直接被忽略,不会再上传。

2. 按需重置同步状态(等效清理远端缓存)

修正规则本身不需要重置缓存,如果需要彻底校准同步状态,根据场景二选一:

方案1:无感重置(生产环境推荐)

不会重传全量文件,直接让新规则从当前版本生效:

  • 通过FTP工具编辑远端根目录的.git-ftp.log
  • 将文件内的Hash替换为本次待推送的目标Commit完整Hash
  • 保存后正常运行Bitbucket流水线即可

git-ftp会判定当前目标版本已同步,仅会推送该Commit之后的差异内容,新忽略规则即时生效。远端历史遗留的scss文件可手动删除,后续推送不会恢复。

方案2:全量重置(仅用于初始化异常场景)

如果同步状态混乱需要完全重推:

  • 直接删除FTP根目录下的.git-ftp.log
  • 正常运行流水线即可

git-ftp找不到历史同步记录会重新初始化,严格按照最新忽略规则,全量上传所有未被忽略的文件。该操作会重传全部有效文件,生产环境谨慎使用。

流水线配置排查

如果修正规则后仍重复全量上传,检查Bitbucket Pipelines脚本:

  • 确认推送命令为git ftp push,而非git ftp init:后者是初始化命令,每次执行都会触发全量上传
  • 确认流水线工作目录为仓库根目录,避免工具读取不到.git-ftp-ignore
  • 不要随意添加--all、--force强制推送参数

内容的提问来源于stack exchange,提问作者e-israel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 06:45:03