【发布时间】:2011-06-08 23:50:38
【问题描述】:
当我在提交上运行 git cat-file --batch 时,它输出“缺少...”,但提交确实存在。为什么会发生这种情况?当使用 -t 开关运行 cat-file 时,它只会输出我所期望的“提交”。任何人都可以解释这一点吗?我是 git 新手。谢谢。
编辑:我已经找到原因了。 msysgit 期望 LF 而 ENTER 生成 CRLF。
【问题讨论】:
-
您是否使用标准输入将输入传递给 git cat-file --batch ?它不期望提交作为命令行参数。我试过'echo
| git cat-file --batch' 它可以工作。也许检查您通过标准输入发送的输入是什么样的 -
@sinelaw:是的。首先,我运行 git cat-file --batch 没有参数,然后它等待输入,然后,我输入了提交 SHA1。我试过你的回声方式,它奏效了......
-
我发现 git cat-file --batch 在 Windows 上运行不佳。我在 Ubuntu 上尝试过,我的方式没有问题......也许这只与 git 的 windows 版本有关。
-
优秀的捕获。我在下面的回答中包含了您的结论。