1

我有一个内容存储服务器软件,客户端可以使用他们最喜欢的协议列出/读取/编辑他们的文件:FTP/WebDAV/CIFS/...

我想知道实现 Git 接口是否有意义(我将实现 Git 协议的服务器端,Git 客户端将连接到它)。

问题:有没有实现 Git 协议的服务器端软件?(除了Torvalds 开发的 Git 服务器)?

4

1 回答 1

2

你几乎肯定不想自己实现一个 git 服务器。Git 的设计不适合 lib 化,因此一直存在的问题是 git 的一流库版本不可用。

尽管如此,还是有很多选择,取决于您的需求:

  1. libgit2,关于真正的 C git 库的最新工作,以及它与其他语言的各种绑定
  2. GitPython以及用于 Python 和其他语言的类似库,它们包装了 git 可执行文件本身
  3. jgit , git 的原生 Java 实现

如果你想做的是为你的内容提供一个透明的类似 git 的界面,你需要仔细考虑这意味着什么以及你想要提供什么。Git 是一个 DVCS,因此它保留了所有事物的全部历史。这意味着您必须保留并提供整个历史记录,以便人们对您的存储库做任何有用的事情。因此,如果您只是尝试为一次性视图导出数据,那么这没有多大意义。我认为只有当您实际上将所有后端数据存储在 git 中的版本控制之下时,这种方法才最有意义。

最后,请注意,本身没有“git 服务器”。Git 利用现有的传输方式,如 ssh、http 等,可以发送简单的 git 命令来发送和检索数据。

于 2012-05-02T02:53:17.517 回答