Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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 GUI并解析Git';谁的产量?_Git_User Interface_Console_Exec - Fatal编程技术网

如何创建Git GUI并解析Git';谁的产量?

如何创建Git GUI并解析Git';谁的产量?,git,user-interface,console,exec,Git,User Interface,Console,Exec,我想创建一个小的Git GUI,我的想法是制作一个调用普通Git软件的程序(使用exec或类似的东西),但我的问题是我不知道如何处理Git的stdout(输出)。它将所有内容打印为字符串 有没有办法让它打印一些易于解析的数据,比如JSON之类的 像git gui for Windows或Gitkraken这样的gui是如何获得输出的 如果您知道另一个类似的程序,那么请告诉我我可以使用的方法。在许多语言中都有使用git的库。例如,您可以使用python或ruby等 例如: from git imp

我想创建一个小的Git GUI,我的想法是制作一个调用普通Git软件的程序(使用
exec
或类似的东西),但我的问题是我不知道如何处理Git的
stdout
(输出)。它将所有内容打印为字符串

有没有办法让它打印一些易于解析的数据,比如JSON之类的

像git gui for Windows或Gitkraken这样的gui是如何获得输出的


如果您知道另一个类似的程序,那么请告诉我我可以使用的方法。

在许多语言中都有使用git的库。例如,您可以使用python或ruby等

例如:

from git import Repo
repo = Repo("/path/to/a/repo")
for file in repo.untracked_files:
    print("untracked file:", file)

在许多语言中都有使用git的库。例如,您可以使用python或ruby等

例如:

from git import Repo
repo = Repo("/path/to/a/repo")
for file in repo.untracked_files:
    print("untracked file:", file)

你有两种可能,各有优势,各有利弊

  • 使用git-exe
  • 赞成者:

    • 最新的
    • 不要与官方客户行为不同,与图书馆相反(主要优势)
    缺点:

    • 使用和解析输出非常困难
    • 需要支持不同的版本
    但是一些命令可以输出更容易解析的内容。例如,请参见命令帮助中的参数
    --cerial
    --output

  • 使用您选择的语言库 您可以尝试在您选择的语言中使用纯实现,或者在维护良好的库“libgit2”周围使用包装器

    赞成者:

    • 真的很容易使用
    • 性能可能会更好(无需每次命令都读取git文件)
    缺点:

    • 使用可能略有不同或功能有限(特别是对于纯语言实现)

    Ps:你的目标是哪种语言和哪种系统?为什么不改进现有的GUI?因为这是一项艰巨的工作

    你有两种可能,各有利弊

  • 使用git-exe
  • 赞成者:

    • 最新的
    • 不要与官方客户行为不同,与图书馆相反(主要优势)
    缺点:

    • 使用和解析输出非常困难
    • 需要支持不同的版本
    但是一些命令可以输出更容易解析的内容。例如,请参见命令帮助中的参数
    --cerial
    --output

  • 使用您选择的语言库 您可以尝试在您选择的语言中使用纯实现,或者在维护良好的库“libgit2”周围使用包装器

    赞成者:

    • 真的很容易使用
    • 性能可能会更好(无需每次命令都读取git文件)
    缺点:

    • 使用可能略有不同或功能有限(特别是对于纯语言实现)
    Ps:你的目标是哪种语言和哪种系统?为什么不改进现有的GUI?因为这是一项艰巨的工作

    您可以使用
    git--cerial
    获得更多机器可读的输出。例如,如果您在回购协议上运行
    git status
    ,而不做任何更改,您将获得一些不必要的信息,例如提示推送。但是,如果您运行
    git-status--chi瓷
    ,则会出现零输出,您可以使用
    git--chi瓷
    获得更多机器可读的输出。例如,如果您在回购协议上运行
    git status
    ,而不做任何更改,您将获得一些不必要的信息,例如提示推送。但是如果运行
    git status--
    ,则输出将为零