Git中一个文件的日志和差异信息不一致

4

我在运行以下 git 命令时遇到了问题:

  1. Diff between two branches for one file delivers clear information about existing differences:

    $ git diff --shortstat develop-2.2 feature/develop-2.2-Grouping -- coba.zaa.tools/coba.zaa.tools.resources/src/main/resources/workflows/processflow/statemachine.ftl
    
    1 file changed, 162 insertions(+), 24 deletions(-)
    
  2. However a search for the commits with the differences delivers no results:

    $ git log --oneline develop-2.2...feature/develop-2.2-Grouping coba.zaa.tools/coba.zaa.tools.resources/src/main/resources/workflows/processflow/statemachine.ftl
    

这是正确的推理吗?如果是,那么我的代码库是否有损坏?是否有办法检查库的一致性(例如,如果所有提交相同,则所有文件应该是相同的)?


git log 命令中的 ... 是有意为之的吗?我认为这可能是你遇到问题的原因。 - TriskalJM
1
@TriskalJM 是的,这是有意为之的。它应该列出所有对此文件进行了更改的提交,这些更改存在于一个分支中但不存在于另一个分支中。 - Adam Bogdan Boczek
2
尝试使用 --full-history 进行操作,如果没有结果,请再次使用 --graph --decorate 并发布结果?我认为您也应该看到结果。 - jthill
你正在寻找 git fsck。话虽如此,你对 ... 的理解是错误的(它是对称差异,而不是后者排除了从前者可达的那些),但即便如此,我也希望 .. 会产生相同的结果。尽管如此,这种行为似乎并不表明 Git 文件损坏;我建议在使用 git log 时使用 ..(也许可以省略点号,因为它们在这里无关紧要)和 --,因为除非你有特定的原因怀疑数据损坏,否则更可能是你在使用 Git 方面出了问题(也许是某个地方打错了字)。 - Pockets
@jthill,那是个好提示,谢谢,看看我的答案在下面。 - Adam Bogdan Boczek
1个回答

0

--full-history完成了任务。

我能够找到其他未列在标准git log输出中的提交。我发现了一个解决合并冲突并更改文件的提交。感谢@jthill的提示。

然而,git log为什么会这样工作,我不知道原因。


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