Ry0 Note

技術系SONEノート

SmartGitのインストールと使い方 (Ubuntu 14.04)

Gitの操作を少しでも簡単に

GitのGUIクライアント「SmartGit」

本日はGitクライアントソフトの紹介です。 MacやWindowsは豊富にGitクライアントソフトがそろっていますが、Ubuntuでは選択肢があまりなく、その中でもデザインもいい感じで使いやすい「SmartGit」のインストール方法と基本的な使い方について書いていきます。
基本的にはUbuntuを使って操作の説明をしていきますが、他のOSでもインストール以外の箇所はデザインもほぼ共通なので参考になれば幸いです。

まずはインストール(Ubuntu)

前提条件ですがGitがインストールしてあって、SSH接続等の設定が済んでいるものとして話を進めていきます。

公式サイトからバイナリを手に入れて、手動でインストールすることができますが解凍したりインストールの場所をどこにするかとか考える必要があるため簡単にapt-getでいきます。

あとUbuntuにJavaが入っていない場合、起動できないのでJavaの導入がまだな人は同時にインストールするようにしてください。

1
2
3
4
5
#Oracle Java 8のレポジトリ(Javaが入ってない人向け)
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
#Oracle Java 8のインストール
sudo apt-get install oracle-java8-installer
1
2
3
4
5
#SmartGitのレポジトリ
sudo add-apt-repository ppa:eugenesan/ppa
sudo apt-get update
#SmartGitのインストール
sudo apt-get install smartgit

以上のコマンドを実行し、インストール作業を完了させてください。

SmartGitの初期設定

インストールが完了したら、Unityランチャーから「SmartGit」と入力し、SmartGitを起動。

非商用利用の場合、写真のようにチェックを入れる。

同意する。

「Use SmartGit as SSH client」でいいと思う。チェックして次へ。

多分、Gitの設定した時のユーザー名とEメールアドレスがあると思うので、それを入力しておく。

この項目はスキップ。

ここもスキップ。

エラーが起きたときにエラーレポートを自動で送信するか、勝手にすんなと思うならチェックを外しておく。

ここまで、設定が終わったら、SmartGitのウィンドウが開いて以下の画面が出てきますが、今は「Close」を押す。

SmartGitの使い方

SmartGitのUI

SmartGitのデザインはこんな感じです。 各窓が何を表しているか、簡単に示しています。

下の項目ではgitの操作でよく使う操作についてSmartGitではどう操作するのかを書いています。

レポジトリをSmartGitに登録

レポジトリが既にローカルにある場合、上のメニューボタンから一番左の「Repository」から「Add or Create…」を選択し、目的のレポジトリがある階層を教えてあげることで登録できます。

リモートレポジトリをcloneしてくる

登録したいレポジトリがローカルにない場合、リモート先のレポジトリからcloneしてきます。 これに関しては、コマンドラインでちゃっちゃとやってから上の操作で登録するっていう方法でもOKです。

コミットする

一番使うと思われるcommitです。コミットボタンは上のアイコン付きのボタンの群にあります。 このときコミットしたいファイルを「Files」の項目から選択しておきます。 選択した後、「Commit」を押すと、以下のウィンドウが出てきてコミットメッセージを入力します。

コミットメッセージを入力し終えたら、コミットします。 まだリモート先に反映したくなかったら、「Commit」で、同時にリモート先にプッシュしたかったら「Commit & Push」です。

pullする

他のPCで作業したり、複数の人が編集をしていてリモートレポジトリに変更があるときはpullをする。このボタンは一番左にあります。 「Pull」を押すと、下のようなウィンドウが出てくるので「Pull」を押す。

branchを追加

新たなbranchを今のHEADに追加したかった場合、「Add Branch」。

branchの名前を入力して「Add Branch」。

branchの切り替え

branchを切り替えcheckoutをしたい場合、左下のBranchesの窓で、切り替えたいbranchをダブルクリックします。

すると以下のアラートがでるので、問題なかったら「Checkout」。

マージ

先ほど作成したbranchをmasterにマージしたい場合、以下の手順にしたがってマージしていきます。 今回は、マージをしたよという情報が残るマージ方法でいきます。 mergeの種類もいくつかあります。これについては以下のサイトが分かりやすかったです。

図で分かるgit-mergeの–ff, –no-ff, –squashの違い

SmartGitにもどって、マージ作業をします。 このときマージして結合する先のbranchで作業してください。
例えば、developというbranchの内容をmasterにマージしたい場合、masterのbranchで以下の操作を行います。

SmartGitの上部のボタン群にある「Merge」ボタンを押します。

この場合、developbranchのコミットが表示されていないので右上の「Branches」ボタンを押します。

そしてローカルにあるbranchをすべて表示させるようにチェックを入れました。

するとmasterbranchよりも1コミットすすんでいるdevelopbranchのコミットがあります。 これをmasterにマージします。 対象のコミットを選択して、「Create Merge-Commit」を選択。 そして「Create Merge-Commit」を押します。

コミットログの確認

先ほどのマージ作業が上手くできたかを確認したり、プログラムがうまく動かなくなったとき、過去のコミットを参照してどこを変更したかなどを参照することができます。 ログの確認はSmartGitの画面右上の「Log」ボタン。

ここで過去のコミットに戻す作業等もできますが、頻繁に戻すことはないので省略します。

ちょっとした設定

SmartGitのレポジトリ一覧から右クリックでそのレポジトリがあるディレクトリをターミナルで開いたり、ファイラーで開いたりできます。 Ubuntu標準のターミナルやファイラーを使っている場合、そのアプリで開くように設定する必要があります。

下の写真だと、ファイラーが「nemo」、ターミナルが「terminater」で開くように設定しています。
nemoの設定はCommandnemoArguments${fileUri}
Terminatorの設定はCommand/usr/bin/terminatorArguments--working-directory ${filePath}です。

おわりに

いろいろ書いているうちにごちゃごちゃし始めたので、この辺にしておきます。
GUIで操作できるのはとても楽だし、視覚的にわかりやすいですが、本当にはじめてGitを勉強するひとは一回コマンドラインで基本的な操作する練習をしてから使ってみるといいと思います。でないと何をやっているのかわからないままSmartGitに慣れてしまうと、GUI環境がなくなったときにどうすることもできない状況になると困るかなと。

Gitに慣れてきたら日常的に行う操作に関しては、SmartGitでやると楽だと思います。特に前回コミットと現在変更した箇所の差分が表示されるので、これが便利だと思います。 あとコミットするファイルを視覚的に選択できるのがいいですね。git addだとこれはコミットしたいけど、これはいいとかいう操作がしづらいですから。
一方で複雑な操作をする場合、コマンドでやったほうがわかりやすいときもありますのでGUIとCLIを使い分けていくといいですね。
本日は以上です。最後まで閲覧していただきありがとうございました。