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

如何反转Git当前修改与其他分支的diff对比顺序?

反转Git Diff对比顺序的几种方案

当你运行git diff my_other_branch时,Git默认会把当前dirty工作区作为“新状态”,my_other_branch作为“旧状态”来对比——输出的差异是“工作区比my_other_branch多了哪些修改”。如果你想要反转这个顺序,查看“my_other_branch比当前工作区多了哪些修改”,可以用下面几种实用方案:

方法1:使用--reverse选项(最简单直观)

Git自带了专门反转diff方向的参数,直接在命令里加上--reverse即可:

git diff --reverse my_other_branch

这个选项会直接交换对比的两个对象,不管你原本的对比是工作区和分支、分支和分支,还是其他组合,都能一键反转差异的显示逻辑,完全匹配你想要的“把a..b改成b..a”的效果。

方法2:显式指定对比双方(更灵活)

如果你想更明确地控制对比的两个端点,可以把当前工作区的内容转换成一个临时树对象,再和目标分支对比:

git diff my_other_branch $(git write-tree)

git write-tree会把当前工作区的所有内容(包括未暂存的修改)打包成一个Git树对象,这里我们用它来代表当前工作区的状态,然后让Git对比my_other_branch和这个临时树,最终效果和--reverse完全一致。

补充说明:区分分支对比和工作区对比

如果你的需求其实是对比**当前分支(HEAD)**和my_other_branch(而非包含未暂存修改的工作区),那反转顺序只需要交换两个分支的位置:

# 原对比:HEAD vs my_other_branch
git diff HEAD my_other_branch

# 反转后:my_other_branch vs HEAD
git diff my_other_branch HEAD

但注意这个命令不会包含你工作区的未暂存修改——如果要包含工作区的变动,还是得用前面两种方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:38:56