You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何过滤仅含POT-Creation-Date变更的.po文件不提交至Git

过滤仅POT-Creation-Date变更的PO文件方案

核心逻辑

只保留除POT-Creation-Date外还有其他内容变更的PO文件,完全仅该字段变更的文件直接取消暂存,不提交。

具体实现步骤

  • 先获取所有已修改的PO文件:
    CHANGED_PO_FILES=$(git diff --name-only --cached "*.po")
    
  • 遍历每个文件,检查是否存在非POT-Creation-Date的变更:
    for FILE in $CHANGED_PO_FILES; do
      # 过滤掉diff中仅关于POT-Creation-Date的行
      FILTERED_DIFF=$(git diff --cached "$FILE" | grep -vE '^[-+]"POT-Creation-Date: ')
      # 如果过滤后无内容,说明仅头部变更,取消暂存
      if [ -z "$FILTERED_DIFF" ]; then
        git reset HEAD "$FILE"
      fi
    done
    
  • 提交剩余的有效变更:
    git commit -m "Update translation files with actual content changes"
    

细节说明

  • --cached参数针对已暂存的文件操作,如果是直接对比工作区和仓库版本,可替换为git diff HEAD "$FILE"
  • grep -vE用来排除所有以-或+开头、包含POT-Creation-Date的行,确保只保留实际翻译内容的变更记录

内容的提问来源于stack exchange,提问作者rffontenelle

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 10:17:18