27

ペットプロジェクトとして、ストレージバックエンドとしてgitを使用してメモを取るアプリを開発したいと思います。(この男のブログ投稿を考えると、これはまだ存在しないと思います:http: //jarofgreen.co.uk/2012/08/how-about-a-mobile-note-app-backed-by-git/

さて、これを少し囲碁で遊んでみたいと思います。ただし、Go用のgitライブラリは(最も小さなアプローチでも)見つからないようです。実際に何かありますか?

明らかに、Goに関する私の知識は存在しないので、libgitのバインディングを作成することは、始めるのに楽しい方法ではないようです...(そして、おそらく私も知らないルビーに頼るでしょう)

4

7 に答える 7

44

git2goは、Go で使用する git バインディング ライブラリですこれは定期的に更新され、libgit2 を実行している人々によって保守されています。

純粋に Go で記述された git 実装を探している場合は、最も成熟したアクティブなオプションであるgo-gitを使用してください。

于 2013-07-02T15:21:34.000 に答える
13

数年前から、私のチームと私は純粋な git 実装を Go でコーディングしていました。これにより、c/c++ への依存が回避され、より柔軟で拡張が容易になります。

https://github.com/go-git/go-git

go-git は libgit2 または jgit の完全性に到達することを目指しており、現在では配管読み取り操作の大部分と主要な書き込み操作の一部をカバーしていますが、マージなどの主要な磁器操作は欠けています。

于 2017-01-21T04:20:44.663 に答える
13

Go 標準ライブラリのos/execgitパッケージを使用してコマンドをシェルアウトするだけです。

于 2012-11-23T16:15:16.513 に答える
7

ビクターが提案したことは、開発者が想定した Git を「スクリプト化」するための「公式」の方法です。Git のコマンドは、特にこの目的のために 2 つの大きなグループに分けられます。「配管」コマンドは低レベルであり、主に他のプログラムによって使用されることを意図しています。「磁器」コマンドは、ユーザーと対話し、配管コマンドを呼び出して作業を行うことを目的としています。ディレクトリ内/usr/lib/git-coreを調べて (システムによって異なる場合があります)、Git に含まれる配管コマンドの数を把握します。

一方、Go はそのcgo機能を介して共有ライブラリとのリンクをサポートしています。したがって、それでラップlibgit2してみることができます。私の知る限り、libgit2まだ Git 自体と完全に同等ではありませんが、Git リポジトリの読み取り/書き込み、分岐などを行うことができます。おそらく、あなたのタスクには十分でしょう。

さて、すべてを書き終えた後、libgit2のサイトの「Bindings」エントリを下にスクロールすると、 go-git...

于 2012-11-23T16:38:20.603 に答える
3

GoDocで「git」を検索すると、いくつかのプロジェクトが見つかります。libgit2 ラッパーがあり、下部にはGo での未完成の Git 実装があります。

于 2012-11-23T16:42:13.747 に答える