Dav*_*vid 5 git json cmd git-log
我将问题简化到最低限度。Linux下的git命令如下:
git log --pretty=format:{"commit":"%H"}
Run Code Online (Sandbox Code Playgroud)
给我一个有效的 json 元素,比如:
{"commit":"20cafdecc9898113ac6215ae70cd7622dc2cae3b"}
Run Code Online (Sandbox Code Playgroud)
在 Windows 下,我获得了一个无效的 json 元素,因为在某种程度上,Windows 似乎删除了双引号元素,我获得:
{commit:20cafdecc9898113ac6215ae70cd7622dc2cae3b}
Run Code Online (Sandbox Code Playgroud)
您知道为什么吗?或者我该如何修复它,使其在两个操作系统下都可以工作?谢谢你!
我假设您在 Linux 上的 shell 不是bashshell,因为bashLinux 上的 shell 提供了与 Windows 上相同的输出 - 没有双引号。
双引号对于大多数 shell 来说都是特殊字符 - 因此您必须通过“转义”或“引用”来保护它们。
git log --pretty=format:{\"commit\":\"%H\"}
git log --pretty='format:{"commit":"%H"}'
Run Code Online (Sandbox Code Playgroud)
这适用于 Linux 上的 bash 和 Windows 上的 bash。我还没有cmd在 Windows 上测试过它。