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

如何调整git status输出排序:修改文件优先,依次显示删除、新增文件

如何调整Git Status的文件排序,让修改文件优先显示?

好问题!Git默认确实是按文件名字母排序展示状态文件的,要实现你想要的「修改文件→已删除文件→新增文件」的排序逻辑,我们可以通过命令组合或者Git别名轻松搞定,下面给你两种实用方案:

方案1:直接用Shell命令组合实现

我们可以借助awk工具过滤并重新组织Git状态的输出,让不同类型的文件按你期望的顺序排列。执行以下命令就能得到目标格式的输出:

git status | awk '
    /modified:/ { mods = mods $0 "\n" }
    /deleted:/ { dels = dels $0 "\n" }
    /new file:/ { news = news $0 "\n" }
    END { printf "%s%s%s", mods, dels, news }
'

命令说明:

  • git status:输出默认的详细状态信息
  • awk脚本会分别收集三类状态的行:
    • 匹配modified:行,存入mods变量
    • 匹配deleted:行,存入dels变量
    • 匹配new file:行,存入news变量
  • 最后按「修改→删除→新增」的顺序输出所有收集到的内容

如果你的项目里还有其他状态类型(比如renamed:重命名文件),可以在脚本里添加对应的规则,比如:

git status | awk '
    /modified:/ { mods = mods $0 "\n" }
    /deleted:/ { dels = dels $0 "\n" }
    /renamed:/ { renames = renames $0 "\n" }
    /new file:/ { news = news $0 "\n" }
    END { printf "%s%s%s%s", mods, dels, renames, news }
'

方案2:创建Git别名,一键调用

为了不用每次都敲长命令,我们可以把上面的逻辑做成Git别名,方便日常使用:

  1. 打开你的Git配置文件(全局配置是~/.gitconfig,项目配置是.git/config)
  2. 在[alias]区块里添加以下内容:
[alias]
    status-sorted = !git status | awk '
        /modified:/ { mods = mods $0 "\n" }
        /deleted:/ { dels = dels $0 "\n" }
        /new file:/ { news = news $0 "\n" }
        END { printf "%s%s%s", mods, dels, news }
    '
  1. 保存配置后,以后只要执行这个命令就能看到排序后的状态:
git status-sorted

这样调整后,提交前查看文件状态就完全符合你的使用习惯啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:17:10