Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从git命令获取JSON,例如git status_Git_Git Status - Fatal编程技术网

从git命令获取JSON,例如git status

从git命令获取JSON,例如git status,git,git-status,Git,Git Status,如果我运行此命令: $ git status 我得到: On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean 这很难解析 但真正好的是——json输出,在另一个世界中,我希望看到: $ git status --json 得到这个: { "currentBranch": "master", "remoteT

如果我运行此命令:

$ git status
我得到:

On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
这很难解析

但真正好的是——json输出,在另一个世界中,我希望看到:

 $ git status --json
得到这个:

   {
    "currentBranch": "master",
    "remoteTrackingBranch": "origin/master",
    "isUpToDateWithRemote": true,
    "workingDirectoryClean": true
   }
NPM生态系统中是否有某种工具可以将Git输出解析为JSON?解析git status等的输出的最佳方法是什么?

这不是JSON,而是:

以易于解析的格式为脚本提供输出。这与short输出类似,但在Git版本中,无论用户配置如何,都将保持稳定

见:

版本2格式添加了有关工作树状态和已更改项的更详细信息。版本2还定义了一组可扩展的易于解析的可选头

标题行以“#”开头,是为了响应特定的命令行参数而添加的。解析器应该忽略他们无法识别的标题


例如,它解析
git status--cerial=v2--branch
并为您的shell输出格式良好的字符串。

例如,
git log
有一个选项
git log--oneline
但是AFAICT,
git status
与以后可以实现JSON输出没有类似之处:所有unix工具都将受益于
--JSON
。没有
--json
,它是为人类准备的,有
--json
它是为机器准备的。@AlexanderMills我的观点是:
git状态--Ceral
已经是为机器准备的,不是为人类消费的。但是,是的,它还不是JSON。嗯,应该有一个通用的界面,用于命令行工具、文本流等。我不必猜测如何解析输出。如果我使用--JSON开关,我应该能够解析换行符分隔的JSON。@AlexanderMills我同意,这就是我在评论中提到的原因:可能会出现一个带有JSON输出的
--cerial=v3
选项。但现在,您必须解析现有的输出,并自己生成JSON。
vonc@voncvb C:\test
> git status --porcelain=v2 --branch
# branch.oid a4a9ae9616e5f1da136a3ff717e722d055ca9aa7
# branch.head master
# branch.upstream origin/master
1 .M N... 100644 100644 100644 67f7a2a439ffb9dd18dd65bb6fd296f8c16c55b3 67f7a2a439ffb9dd18dd65bb6fd296f8c16c55b3 test/file1.txt
1 .M N... 100644 100644 100644 d59cac0c8acf674ba3316944451dcbec3e6ec3d7 d59cac0c8acf674ba3316944451dcbec3e6ec3d7 test/file2.txt