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

如何在不修改生产结构前提下对比非Git仓库生产文件与远程Git仓库差异

方案一:生产环境完全无需依赖Git(优先推荐)

全程仅使用Unix系统自带工具,不会对业务目录产生任何改动:

  • 开发端导出标准版本包:
    在持有Git仓库的开发/发布机器上,切换到生产环境对应部署的版本分支/标签,执行打包命令:
    git archive --format=tar.gz -o prod_standard.tar.gz HEAD
    
  • 生产端执行比对:
    将打包好的prod_standard.tar.gz上传到生产环境的临时目录(如/tmp,禁止写入业务目录),执行以下命令:
    # 解压标准版本到临时目录
    mkdir -p /tmp/prod_standard
    tar -zxf /tmp/prod_standard.tar.gz -C /tmp/prod_standard
    # 递归比对两个目录的差异,可按需添加--exclude参数过滤日志、临时文件
    diff -rq \
    --exclude='*.log' \
    --exclude='*.tmp' \
    /tmp/prod_standard/app \
    /../../app
    
    去掉命令中的q参数即可输出具体文件的内容差异。

方案二:允许放置Git二进制的轻量方案

比对效率更高,支持Git原生的差异过滤规则,全程不会在业务目录生成.git相关文件:

  • 开发端导出Git索引包:
    在持有Git仓库的开发/发布机器上,切换到生产对应版本,执行命令生成索引包:
    git bundle create prod_index.bundle HEAD
    
  • 生产端执行比对:
    将对应CPU架构的静态编译Git二进制文件、prod_index.bundle都上传到生产环境临时目录,执行命令:
    cd /../../
    # 仅输出差异文件列表
    /tmp/git diff --no-index --stat /tmp/prod_index.bundle:app ./app
    # 如需查看具体内容差异,去掉--stat参数即可
    

所有临时操作文件都存放在/tmp目录,操作完成后可直接删除,不会对生产环境现有结构产生任何影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:18:03