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

如何在Git中为不同文件类型默认配置对应的diff命令

完全可以通过 .gitconfig + .gitattributes 组合配置实现需求,配置完成后直接执行原生 git diff 命令就会自动按文件后缀调用对应diff工具,原有手动调用的git jdiff能力也不会受影响。

配置步骤

1. 调整.gitconfig配置,定义不同文件类型的diff驱动

在你现有的.gitconfig基础上新增不同文件类型的diff驱动配置:

# 你原有配置保留,不影响原有使用习惯
[difftool "jsondiff"]
        cmd = "json-diff $LOCAL $REMOTE --color=always | less -r"
[alias]
        jdiff = difftool -t jsondiff -y

# 新增自动匹配的diff驱动配置
[diff "json"]
        command = json-diff $LOCAL $REMOTE --color=always | less -r
# 以下为JS文件的diff驱动示例,command字段替换为你实际使用的JS diff工具命令即可
[diff "js"]
        command = js-diff $LOCAL $REMOTE --color=always
# 其他文件类型的自定义diff规则可按上述格式新增

配置中$LOCAL和$REMOTE是Git自动传入的新旧版本临时文件路径,不需要手动修改。

2. 配置.gitattributes关联文件后缀与diff驱动

你可以选择规则的生效范围:

  • 全局生效:在用户根目录创建~/.gitattributes文件(Windows系统路径为C:\Users\你的用户名\.gitattributes),规则对本地所有Git仓库生效
  • 项目级生效:在项目根目录创建.gitattributes文件,提交到仓库后所有协作者都可以共用这套规则

在.gitattributes文件中添加以下内容:

*.json diff=json
*.js diff=js
# 其他后缀按 `*.后缀名 diff=驱动名` 格式添加即可

3. 验证效果

配置完成后直接执行git diff即可,Git会自动识别文件后缀调用对应的diff命令。如果临时需要使用Git原生diff输出,可以加--no-ext-diff参数:

git diff --no-ext-diff

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 14:18:04