如何执行git diff <commit>...<working tree>命令?

3
很容易执行git diff <commit>...<some other commit>,但我如何实现与在该命令中指定“工作树”相当的效果呢?我尝试过git diff <commit>...git diff <commit>... .等,但它们实际上没有捕捉到我在工作树中所做的更改。
如果<commit>可以是远程分支,那就更好了 =)
1个回答

3

使用...,您隐式地指定了HEAD。您需要使用单参数版本的diff与工作树进行比较。

git diff <commit>
<commit>可以是任何指向提交的东西,比如远程跟踪分支的名称。

这绝对不值得单独回答:补充一下,你可以使用 remoteName/branchName(例如 origin/master)引用远程分支,并且可以使用 git branch -a 查看所有分支。 - KingCrunch
@KingCrunch:是的,我已经添加了澄清。 - CB Bailey
我已经尝试过这个方法,虽然它确实可以捕捉到工作树的变化,但是它没有像“...”那样提供筛选功能(这种功能模拟了如果您调用“git-merge-base”会发生什么)。 - Suan
@Suan:但是你不能仅凭工作树就拥有合并基础;它没有历史记录。也许我不理解你想要实现什么?(我已经删除了第一句话。你是对的,说它对“log”没有任何影响是不正确的。) - CB Bailey
@Suan:你只是在寻找 git diff $(git merge-base HEAD <commit>) 吗?你可以将它放在一个 shell 函数或 git 别名中。 - CB Bailey
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接