今回はオープンソースでマルチプラットフォームなGUIのGitクライアント、Gittyupを紹介します。
Git初学者向けのGUIクライアント
あなたはプログラマーです。Gitも突っ込んだことは検索しないとよくわからないものの、普段遣いする範囲では手に馴染んたツールとなっています。
そんな中、同じチームに中途採用の新人が配属されることになりました。プログラムに関する知識はあるものの、Gitについては経験がないらしく、説明してくれと上長から言われてしまいました。
そんな人に説明できるほど詳しいわけではないんだけどな……と思いつつ、クライアントOS(もちろんUbuntu)で動作するGitクライアントを探し始めました。長期的に考えればgitコマンドを覚えてもらうほうがいいに決まっていますが、まずはGUIクライアントから検討することにしました。
……というのが今回のシナリオです。もちろんフィクションです。
最近のだいたいのIDE(Integrated Development Environmentのほうで、Integrated Drive Electoronicsではない)にはGitクライアント機能が統合されています。これを使用してもいいのですが、ちょっと機能が足りないと日々感じており、結局コマンドを叩きがちです。ついついgit commit
を実行してしまい、コミットログを書き込むためにIDEのタブが開いてまた無意識にやってしもうたと思うことは誰しもあることでしょう(ここだけノンフィクション)。
UbuntuのリポジトリにはさまざまなGUIのGitクライアントがありますが、今回はFlathubから探すことにしました。条件は次のとおりです。
- オープンソースであること
- できればマルチプラットフォームであること
- 必要な機能がひととおり揃っていること
- 活発に開発が行われていること
そんなに虫のいいものがあるのかな……という感じですが、ありました。Gittyupです。ただしFlathubにあるパッケージは日本語メニューになりません。開発版では日本語にでき、AppImage版もダウンロードできますが、日本語の入力はできませんでした。よって、遠からず行われるであろう最新版のリリースを待ったほうがいいのですが、今回は英語メニューのままで紹介します。
Gittyupのインストール
前述のとおりGittyupはFlathubからインストールするため、Flatpakの実行環境を準備します。すでにご存知のことでしょうが、あらためて解説します。端末を起動し、次のコマンドを実行してください。
$ sudo apt install flatpak gnome-software-plugin-flatpak
$ flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
ここで一旦再起動します。
あとは先程インストールした「ソフトウェア」からGittyupをインストールするか(図1)、次のコマンドからインストールしてください。
$ flatpak install flathub com.github.Murmele.Gittyup
Gittyupを使ったGit操作
Gittyupを起動すると、テーマを選択するメニューが表示されます(図2)。今回は「Default Theme」とします。テーマを選択すると実際に起動します(図3)。
初期設定
まずは「Tools」-「Options」で「User name」と「User email」を入力します(図4)。
クローン
続いて「Clone repository」で、リポジトリをクローンします。クローン元のURLを入力し、「Next」をクリックします(図5)。続いてクローン先のフォルダー情報を入力して「Clone」をクリックします(図6)。
クローンしたリポジトリが表示されました(図7)
リモートリポジトリの追加
いきなりヘビーな使い方になりますが、別のリモートリポジトリを追加してその内容を手元のmasterにマージしたいとします。「Repository」-「Configure Repository」-「Remotes」タブに、リモートリポジトリを登録します(図8)。
続いて「Remote」-「Fetch From」を開き、「Remote」を先程追加したリモートブランチにして「Fetch」をクリックします(図9)。
そして「Branch」-「Merge」をクリックして先程追加したリモートブランチを選択して「Merge」をクリックします(図10)。
コミットログを入力して「Merge」をクリックします(図11)。
コミット
コミットは、まずは右中央の「Staged Files」を確認します。ここが空の場合はコミットできません(図12)。「Unstaged Files」にあるファイルやフォルダーをコミットする場合は、左側のチェックボックスにチェックを入れます。すると「Staged Files」に移動します。コミットする場合は、「Staged Files」にあるファイルやフォルダーにチェックを入れます。すべてのファイルをコミットする場合は、「Staged All」をクリックします。
コミットするファイルやフォルダーが決まったら「Commit Message」にコミットログを書き、「Commit」をクリックします。
コミットログに誤りがある場合は、「Repository」-「Amend Commit」で修正できます。「Commit Message」を書き換え、「Amend」をクリックします(図13、図14)。
プッシュ
リモートブランチへ新しいブランチをプッシュする場合は、「Remote」-「Push To」を開き、たいていの場合はそのまま「Push」をクリックします。GitHubなどではパスワードでのプッシュができず、アクセストークンを取得する必要がある場合もあります。
デフォルトブランチへのプッシュは、「Remote」-「Push」をクリックするか、メニュー左上にプッシュするコミット数が赤丸で表示されているので、これをクリックすることによって行なえます(図15)。
GUIのメリット
GUIのメリットは、今現在どのブランチで作業しているのかと変更点が常に表示されていることでしょう。Gittyupはそればかりでなくブランチ、リモート、タグの一覧から簡単に切り替えられるのもメリットです。
日常的に使用するGitのコマンドがひととおり揃っており、またGUIならではの見やすさもあるGittyupは、Gitの取っ掛かりにはぴったりで今回のような場面でも活躍できることでしょう。