WebベースのGitクライアントをリリースしました

2019-10-12

目次

お久しぶりです。

表題通りですが、 CUIライクな Gitクライアント GitXone を作りました。

利用技術は以下です。

  • Golang

  • Nuxt (SPAモード)

  • TypeScript

  • WebSocket

使い方 (Usage)

実行ファイルは https://github.com/gitxone/gitxone-core/releases にあるので、試してみたい方は最新の実行ファイルをダウンロードして実行してみてください。

実行したら http://localhost:10098 にアクセスしてください。

gitxone-index.png

入力欄にリポジトリのファイルパスを入れてボタンを押すとリポジトリ画面に遷移します。 一度アクセスしたリポジトリは履歴として記録されるので次からはリンクからアクセスできます。

gitxone-repo.png

各ウィンドウのコマンドや配置、大きさは変更可能でリポジトリごとに保存されるので、 使いやすいようにカスタマイズしてみてください。

  • ウィンドウは3種類あり、それぞれフレームの色が違います

    白色

    自動実行されるウィンドウで、実行されたコマンドはそのまま残ります。常に表示しておきたい情報はこのウィンドウを使います。

    水色

    コマンドが実行されると実行されたコマンドはクリアされます。自動実行されません。

    赤色

    コマンドが実行されるとウィンドウは自動的に閉じます。

  • コマンドの実行は Enter

  • ウィンドウを閉じるときは exit と入力して Enter

  • 表示領域をダブルクリックするとモーダルで表示します

    gitxone-modal.png

なお、オプションとファイルは補完が効くようになっていて擬似的にコマンドラインみたいなものを表現しています。

gitxone-comp-files.png gitxone-comp-opts.png

補完のルールは Gitのドキュメント から自動生成してます。完成度は60%ってとこかな。

課題 (Task)

切りが良いので公開はしましたが、実はまだまだ足りないことだらけです。

  • アイコンの準備

  • README の追記

  • 表示を高機能にする

    • diff 等の表示に色付けする

      • そういえば色付けされたコマンド結果とってくる方法ってあるのかな?

    • パスをクリックして add / rm --cached

    • リビジョンをクリックして checkout

  • 認証を付ける

    • Basic認証

    • Digest認証

  • コマンド補完の改善

  • ポート番号の指定

    • オプションは用意していますがまだ動きません。

少しずつ直していこうと思います。

モチベーション (Motivation)

フリーランスで仕事をしてて Golang の案件をとりたいんですが 今まで Python の案件ばかりやってきたので、ポートフォリオ的な感じで作りました。 3週間くらいかかりました。

とはいえ使えないものを作っても保守できずに放置してしまうので、 ある程度のクオリティのものを作ろうと思っていました。

最初は go-git というライブラリを使おうと思ってたんですが、 他のGitクライアントでサポートしているような機能を全部作り込もうとするとライブラリの機能が一部足りなかったり、時間も全然足りないので、 受け取ったコマンドをそのまま実行して表示するようなコンセプトに切り替えました。

一部のニッチな需要を満たせるかなと思います。 あと、Gitコマンドの勉強にも使えるかな?

というわけで、興味があれば使ってみてください。

スターよろしくです〜 https://github.com/gitxone/gitxone-core

あと仕事ください! (切実)

詳しくは 問い合わせフォームTwitterのDM まで