Repolode
feder-cr

feder-cr/git-ai

compare-and-swapによる変更の反映とAIによるコンフリクト解決を備えた、サーバー中心・エージェント指向のGit設計を再実装するGo製サーバーとCLI。

スター
1,280
フォーク
124
未解決の Issue
2
最終コミット
10 時間前

これは何?

gitaiは、コーディングエージェント向けのサーバー中心型バージョン管理設計を独立して実装したオープンソースプロジェクトです。クライアントごとにリポジトリ全体をcloneし、長時間の作業後にpushする代わりに、クライアントはオンライン状態を保ち、必要なオブジェクトとsparse pathだけを取得します。また、blame、パスの履歴、コード検索などの履歴に関する問い合わせをサーバーに行います。リポジトリの状態は、内部では通常のGitリポジトリに保存されます。

書き込みが競合した場合、変更は現在のブランチ先端にrebaseされ、merge queueを介さずcompare-and-swapで反映されます。同じブランチへの同時反映は、1回の参照更新にまとめられます。コンフリクトは、プラグイン可能なresolver(LLMプロバイダー、決定論的なツール、またはresolverなし)に渡せます。モデルが提案した解決策が反映されるのは、最終的なツリーに対して設定済みのverifyコマンドが成功した場合に限られます。

このプロジェクトには、クライアントが一覧表示や監視をできるchangeset log、エージェントごとのトークンとブランチポリシー、セマンティックレビューのルール、SQLiteまたはPostgreSQLでメタデータを管理し、ファイル、S3、GCS、Azureのオブジェクトストレージを利用できるストレージコアも含まれています。Go製のサーバーとgraft CLIはmakeでビルドでき、LinuxまたはmacOSが必要です。

主な機能

  • 01クライアントはリポジトリ全体をcloneせず、単一のオブジェクトとsparse treeを取得します。
  • 02blame、パスの履歴、祖先関係、コード検索をサーバー上で実行し、コミットごとにキャッシュします。
  • 03変更をブランチ先端にrebaseしてcompare-and-swapで反映し、同時の反映はまとめて処理します。
  • 04プラグイン可能なresolverでコンフリクトを解決でき、モデルの提案は設定済みのコマンドで検証されます。
  • 05メタデータはSQLiteまたはPostgreSQLに、packはファイル、S3、GCS、Azureのオブジェクトストレージに保存します。

ユースケース

  • 多数のコーディングエージェントが同じブランチに同時にcommitする環境を運用する。
  • エージェントにsparse checkoutが必要な、セルフマネージドのGitサービスをホストする。
  • 検証ゲートを設けたAI支援のマージコンフリクト解決を試す。
  • 誰がどの参照を変更したかを追跡できる、監査可能なchangeset logを追加する。

クイックスタート

  1. 1

    リポジトリをクローンする

    git clone https://github.com/feder-cr/git-ai.git
  2. 2

    プロジェクトディレクトリに移動する

    cd git-ai
  3. 3

    サーバー、CLI、ツールをビルドする

    make build
  4. 4

    クイックスタートの例を実行する。この例では一時ディレクトリにサーバー、キャッシュデーモン、2つのエージェント、landを起動します

    examples/graft/quickstart.sh

使う前に知っておきたいこと

  • LinuxとmacOSのみをサポートしています。
  • 同梱のGitをコンパイルするため、ビルドにはGo 1.26、Cツールチェーン、Meson、Ninjaが必要です。
  • バージョンは0.3.0です。1.0より前にインターフェースが変更される可能性があります。
  • ストレージコアのpackのガベージコレクションなど、既知の未対応機能はまだ実装されていません。

トピック

よくある質問

git-ai とは?
compare-and-swapによる変更の反映とAIによるコンフリクト解決を備えた、サーバー中心・エージェント指向のGit設計を再実装するGo製サーバーとCLI。 gitaiは、コーディングエージェント向けのサーバー中心型バージョン管理設計を独立して実装したオープンソースプロジェクトです。クライアントごとにリポジトリ全体をcloneし、長時間の作業後にpushする代わりに、クライアントはオンライン状態を保ち、必要なオブジェクトとsparse pathだけを取得します。また、blame、パスの履歴、コード検索などの履歴に関する問い合わせをサーバーに行います。リポジトリの状態は、内部では通常のGitリポジトリに保存されます。
git-ai は無料で使えますか?ライセンスは?
git-ai は Other ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
git-ai は今もメンテナンスされていますか?
活発にメンテナンス中。git-ai の最終コミットは 2026年10月21日 です。
git-ai は何に使えますか?
多数のコーディングエージェントが同じブランチに同時にcommitする環境を運用する。 エージェントにsparse checkoutが必要な、セルフマネージドのGitサービスをホストする。 検証ゲートを設けたAI支援のマージコンフリクト解決を試す。 誰がどの参照を変更したかを追跡できる、監査可能なchangeset logを追加する。
git-ai のインストール方法は?
リポジトリをクローンする: git clone https://github.com/feder-cr/git-ai.git プロジェクトディレクトリに移動する: cd git-ai サーバー、CLI、ツールをビルドする: make build クイックスタートの例を実行する。この例では一時ディレクトリにサーバー、キャッシュデーモン、2つのエージェント、landを起動します: examples/graft/quickstart.sh
git-ai はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/feder-cr/git-ai

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト