为什么 git 不考虑工作树的变化?

Why git do not take into account changes at working tree?

我运行命令:

git log --topo-order -u -L 228,250:"lib/Mojolicious/Plugin/Wizard.pm"

检查 start 子例程中的更改,但 git 不考虑工作树中的更改。

看来我应该提供上次提交时的行:

git stash save
git log --topo-order -u -L 212,234:"lib/Mojolicious/Plugin/Wizard.pm"

在那之后我可以恢复藏匿。命令仍然有效(只是编辑器中的行不同。见第一张图片):

git stash pop
git log --topo-order -u -L 212,234:"lib/Mojolicious/Plugin/Wizard.pm"

是否有一个选项可以显示尚未提交的行的演变?

显然问题是为什么 git logs -L 选项不显示未提交的差异。

简单的答案是 git log 显示来自提交日志的信息,并且在您提交(或隐藏)您的更改之前,提交日志中没有关于这些更改的信息。

在评论中,您说未提交的更改仍然是文件的演变。嗯,好的,但是 git log 通过提交日志 跟踪指定行的演变 。也许这对你没那么有用,或者不符合你对 git "should" 所做的定义,但它就是 git 所做的。

那么争论 git 的设计选择或提出 git 的功能请求的意义何在?在 SO 问题中这样做没有多大用处。

如果您想要一个 work-around... 假设它对您有用,那么进行存储可能是您将获得的最简单的解决方案。我想你可以写一个脚本来创建存储,运行 日志命令,然后弹出存储(或者创建 "temporary" 提交代表你未提交的更改)来保存这对命令的输入价值