Git无法检测图像微小变更,如何强制推送未被识别的变更文件?
Git无法检测到内容变更图像文件的提交解决方案
Git默认会先通过文件大小、修改时间等元数据快速判断文件是否变更,若元数据无变化会跳过内容哈希计算,才会出现内容修改但未被检测到的情况,可按以下步骤解决:
- 第一步:先排除文件被忽略的可能性,执行以下命令校验:
git check-ignore -v 你的图像文件路径
如果命令有输出内容,说明该文件被本地/全局.gitignore规则匹配,先调整对应忽略规则即可。 - 第二步:强制Git刷新文件状态缓存,跳过元数据校验直接重新计算文件哈希:
git update-index --really-refresh
执行后即可在git status中看到变更的图像文件。 - 第三步:如果仍然无法识别,解除文件的「假设未变更」标记:
git update-index --no-assume-unchanged 你的图像文件路径
部分场景下之前为了忽略不重要的文件改动设置了该标记,会导致Git永久跳过文件检测。 - 第四步:正常执行提交推送流程即可:
git add 你的图像文件路径 git commit -m "更新图像内容" git push
注意:不要使用
git push -f解决该问题,该参数的作用是覆盖远端提交记录,当前场景下本地根本没有生成变更提交,强制推送也不会生效。
如果上述方案都不生效,可以使用兜底操作:
- 将修改后的图像文件复制到Git工作区以外的位置
- 执行
git rm 你的图像文件路径,提交一次删除记录并推送 - 将图像文件复制回原路径,重新执行add、commit、push即可100%被Git识别
内容的提问来源于stack exchange,提问作者Marc
相关产品推荐
相关产品推荐

