【问题标题】:Has anyone implemented a git clone or interface library using nodejs? [closed]有没有人使用 nodejs 实现了 git clone 或接口库? [关闭]
【发布时间】:2011-08-22 18:57:32
【问题描述】:

我正在寻找可以从 nodejs 访问的 git 实现——这样的野兽存在吗?

【问题讨论】:

  • 我很好奇为什么关闭。这个问题简洁、明确、狭窄,而且——最重要的是——显然是可以回答的。我错过了什么?它是否在没有任何指示如何改进它的 cmets 的情况下关闭?只是看起来很奇怪。 :)
  • 还可以查看github.com/qrpike/NodeJS-Git-Server 以获取用 NodeJS 编写的 git 服务器
  • @Brian M. Hunt:索要工具被认为是一个坏习惯。原因是这并不是真正的编程问题,而是会导致粉丝大战。恕我直言,那些“糟糕”的问题帮了我很多,我会想念他们的。
  • “模棱两可、含糊不清、不完整、过于宽泛或修辞,无法以目前的形式合理回答”——没有,没有一个原因是远程有效的。证明:OP 的问题可以如实回答“是”,如下所示。这也是一个真正的编程问题。我总是很高兴看到知识渊博的读者在守门员进场之前设法发布答案。
  • 看到没有办法举报/否决错误关闭这个非常合理的问题的 5 个人,我感到非常难过。

标签: git node.js


【解决方案1】:

看起来现在有几个从节点使用 git 的选项:

  • gift:用于 Git CLI 的简单 Node.js 包装器,带有基于 Grit 的 API (npm / github)
  • node-git:一个基于 grit (npm / github) 的 node.js git 实现
  • nodegit:libgit2 异步原生绑定 (npm / github)
  • node-git:对命令行 git 命令 (github) 的精简包装器

【讨论】:

  • node-git 在 0.8 上不起作用 :(
  • node-git 现在在 travis ci 上的节点 0.10 和 0.11 上进行了测试,应该很好。
【解决方案2】:

注意是否有 Node 的 git 库,但你也可以直接执行 shell 进程,例如:

var sys = require('sys')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) }
exec("git status", puts);

【讨论】:

    【解决方案3】:

    还有 node-gitteh 作为 libgit2 绑定,但 gitteh 和 christkv/node-git 都不是我需要的质量和完整性

    我写了 treeeater 一个 spawn git 包装器,它可以用普通的 javascript 对象而不是字符串来调用,可以解析一些输出(git log → commit objects,git ls-tree → tree object hierachy ) 并异步运行。它正在积极使用并支持所有 git 命令,至少用于调用它们并管道输出它们的块或行。您可以坚持使用 git 手册页来获取每个命令的文档。

    【讨论】:

    • 我建议不要使用 node-gitteh。它根本没有得到很好的维护。
    猜你喜欢
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 2019-10-07
    • 1970-01-01
    相关资源
    最近更新 更多