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

git diff --name-only用法问题:搭配black格式化仅识别ipynb文件

问题原因

你当前的写法存在两个核心错误,导致.py后缀的变更文件没有被git diff识别输出:

  • git diff的路径过滤规则需要统一放在单个--分隔符之后,你拆分了两个--,第二个--会被git识别为路径匹配规则的一部分,无法正确匹配到.py后缀的文件
  • 调用black时多余的前置--没有必要,除非你要处理的文件名以-开头避免被识别为命令参数

正确用法

基础场景(匹配当前目录变更的.ipynb和.py文件)

black $(git diff --name-only -- *.ipynb *.py)

全目录匹配场景(匹配所有层级子目录下的对应后缀变更文件)

给glob规则加单引号避免shell提前展开,让git处理全路径匹配:

black $(git diff --name-only -- '*.ipynb' '*.py')

包含已暂存文件的场景

如果你要处理已经执行过git add的暂存区变更文件,添加--cached参数:

black $(git diff --cached --name-only -- '*.ipynb' '*.py')

匹配所有未提交变更(包含工作区+暂存区)

和HEAD提交对比获取所有未提交的变更文件:

black $(git diff HEAD --name-only -- '*.ipynb' '*.py')

注意:如果你的.py文件是未被git跟踪的新文件,git diff默认不会输出这类文件,你需要先执行git add 文件名将其加入git跟踪范围后再执行上述命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:48:03