Git GUI フロントエンドをたずねて三千里
私は Git の GUI フロントエンドに Git Extensions を使っている。 個人的には FOSS の GUI フロントエンドではこれ以上のものはないと思っているが,残念なことに .NET Framework 上で動く製品なのである。 Windows プラットフォームではこれで何の問題もなかったが,どうにも(.NET Framework の別実装である) Mono と相性が悪いようで,メジャーバージョンは上げられないしチョットしたことで落っこちてしまう。
というわけで Linux/Ubuntu で動作する GUI フロントエンドを探してみることした。 今回の評価ポイントは以下の通り。
- コミット履歴をブランチ込みでツリー表示でき,簡単に操作できること
- コミットやタグに対して電子署名を付与でき,かつ署名の検証ができること
- GnuPG や OpenSSH を適切に扱えること
- サブモジュールを簡単に扱えること
- できれば FOSS 製品であること
VS Code や ATOM など最近はテキストエディタや IDE でグラフィカルに git を扱える製品も多く commit
, push
, fetch
, pull
といった基本機能を扱うだけなら GUI フロントエンドを別途用意する必要はないのだが,ブランチやタグや履歴を見ながらちょっと込み入った処理をする際はやはり GUI があるといいよねってことで。
GUI フロントエンドいろいろ
Git-gui
Git の公式フロントエンドらしい。 APT でインストールできる。
Look&Feel は微妙だが機能的には悪くない。 ただ,タグへの署名と署名検証ができないっぽいんだよなぁ。
Giggle
APT でインストールできる。
GNOME 用ということで Look&Feel は悪くないが,あまり複雑なことはできないようだ。 残念。
Gitg
APT でインストールできる。
これも GNOME 用の製品だが,やっぱり複雑なことはできない感じ。 GNOME 用の製品ってみんなこんな感じなのか?
GitHub Desktop
あまり複雑なことはできなくて残念という意味では GitHub Desktop もそうか。 元々は Windows および macOS 用だが Linux 向けの fork を公開している方がいるようだ。
GitHub Desktop は GitHub 上の Issue や pull request が使いやすくなるよう設計されている。 なので git 機能自体のサポートについてはイマイチな感じである。 「初心者向け」と言われるのも宜なるかなというところであろうか。
GitHub Desktop の今後には期待している。
GitEye
FOSS ではないが「無料」で利用できる。 動作には別途 Java ランタイム(JRE)を用意する必要がある1。
Eclipse を連想させるプロジェクトベースの構成。 でも,これならいっそ Eclipse もしくは IntelliJ IDEA を使ったほうがいいんじゃないのか。
GitKraken
プロプライエタリ・ライセンスで非商用のみ「無料」で利用できる。 Pro 版であれば4.08USD/月のサブスクリプション制で利用できる。
Git の GUI フロントエンドといえば大抵これが挙がるくらい有名。 てことは皆これにお金払ってるってことか?
Look&Feel は好みがあるので言及しないとして,機能自体は悪くないのだが GnuPG の扱いが雑。 なんでパスフレーズを入力させるのに自前の入力窓を使うかな。 独自の Pinentry を使ってるってわけでもないようだし,まさかパスフレーズをメモリ上に保持ってないよね?
あと,私の環境ではコミットやタグの署名検証ができなかった。 購入すれば見れるのかな?
SmartGit 【2021-01-09 訂正】
こちらもプロプライエタリ・ライセンスで非商用のみ「無料」で利用できる。 フルサポートで買うとかなり高い。 サブスクリプションを利用するなら5.99USD/月。
Look&Feel や機能は申し分ない。 以前は ssh 接続が上手くいかなくて諦めていたのだが
でちゃんと設定したら上手くいくようになった。 最新バージョンの OpenJDK でも問題なくし git も ssh も gpg も問題なく動く。
惜しむらくは署名の検証が出来ないことかな。 GitKraken もそうだが,署名はできるのに,なんで署名の検証をサボるかな。 意味ないよな。
というわけで
SmartGit は GUI も好みに合ってるしいいかな,と思っている。 しばらく試してみて良さげならお金払ってもいいだろう。
あとは署名検証機能がなぁ。 もうしばらくは Git Extensions も手放せないか。
【おまけ】 CUI な Tig
GUI ではないがキャラクタベースの tig というのがあるらしい。 あちこちページを眺めていると,これを推す記事が結構多い。
サーバ等のリモートホストに対してキャラクタ端末でリポジトリにアクセスする場合は便利かもしれない。
ブックマーク
-
JRE のインストールについては「Ubuntu で遊ぶ」の OpenJDK インストールの項を参照のこと。 ↩︎