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

时间:2018-03-06 11:47:38

标签: git git-log

我运行命令:

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

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

enter image description here

似乎我应该提供他们在最后一次提交中的行:

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

enter image description here

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

那么讨论git的设计选择,还是提出git的功能请求呢?在SO问题中没有太多用处。

如果你想要一个解决方案......假设它正在为你工作,那么存储可能就像你得到的那样简单。我猜你可以编写一个脚本来创建存储,运行log命令,弹出存储(或以其他方式创建"临时"提交代表你未提交的更改)来保存这些命令'值得输入