【问题标题】:How does Github Desktop integrates with the Git commands (CLI)?Github Desktop 如何与 Git 命令 (CLI) 集成?
【发布时间】:2023-02-02 21:25:51
【问题描述】:

所以这是一个更普遍的问题,我以 GitHub Desktop 为例。

假设我们有一个 CLI 软件可以做一些事情,就像 git CLI 一样:

git commit 
git add
etc

GitHub 的桌面版本如何与 CLI 版本的 git 集成(如果集成)以在 GUI 中呈现答案和其他信息?

一般的问题是:给定一个在 CLI 上运行的软件 X,如何在此 CLI 软件之上构建 GUI?

Electron 是否有一些实用程序来运行 cli 命令并解析结果,或者它是否以某种方式与 git 的 C 代码原生集成?

【问题讨论】:

  • 它完全有可能只是备份到 libgit2 库中。如果它是Electron 应用程序,它可以通过Node.js 使用它。但即使它确实运行 git 命令并解析它们的输出,git 也为此目的提供了许多低级“管道”命令。

标签: git command-line-interface desktop


【解决方案1】:

你可以在这里找到代码:https://github.com/desktop/desktop

例如。 dugitehttps://github.com/desktop/dugite

这似乎正在使用 git 的/二进制分发版:https://github.com/desktop/dugite/blob/main/docs/environment-variables.md#execution

或者更重要的是:https://github.com/desktop/dugite/blob/main/docs/overview.md

dugite 是 Git 命令行界面之上的包装器,带有一些帮助器,可以使其在您的 Node 应用程序中轻松使用。

【讨论】: