
GitのGUIクライアント「SmartGit」
本日はGitクライアントソフトの紹介です。
MacやWindowsは豊富にGitクライアントソフトがそろっていますが、Ubuntuでは選択肢があまりなく、その中でもデザインもいい感じで使いやすい「SmartGit」のインストール方法と基本的な使い方について書いていきます。
基本的にはUbuntuを使って操作の説明をしていきますが、他のOSでもインストール以外の箇所はデザインもほぼ共通なので参考になれば幸いです。
まずはインストール(Ubuntu)
前提条件ですがGitがインストールしてあって、SSH接続等の設定が済んでいるものとして話を進めていきます。
公式サイトからバイナリを手に入れて、手動でインストールすることができますが解凍したりインストールの場所をどこにするかとか考える必要があるため簡単にapt-get
でいきます。
あとUbuntuにJavaが入っていない場合、起動できないのでJavaの導入がまだな人は同時にインストールするようにしてください。
1 2 3 4 5 |
|
1 2 3 4 5 |
|
以上のコマンドを実行し、インストール作業を完了させてください。
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」ボタンを押します。
この場合、develop
branchのコミットが表示されていないので右上の「Branches」ボタンを押します。
そしてローカルにあるbranchをすべて表示させるようにチェックを入れました。
するとmaster
branchよりも1コミットすすんでいるdevelop
branchのコミットがあります。
これをmaster
にマージします。
対象のコミットを選択して、「Create Merge-Commit」を選択。
そして「Create Merge-Commit」を押します。
コミットログの確認
先ほどのマージ作業が上手くできたかを確認したり、プログラムがうまく動かなくなったとき、過去のコミットを参照してどこを変更したかなどを参照することができます。 ログの確認はSmartGitの画面右上の「Log」ボタン。
ここで過去のコミットに戻す作業等もできますが、頻繁に戻すことはないので省略します。
ちょっとした設定
SmartGitのレポジトリ一覧から右クリックでそのレポジトリがあるディレクトリをターミナルで開いたり、ファイラーで開いたりできます。 Ubuntu標準のターミナルやファイラーを使っている場合、そのアプリで開くように設定する必要があります。
下の写真だと、ファイラーが「nemo」、ターミナルが「terminater」で開くように設定しています。
nemoの設定はCommandがnemo
、Argumentsが${fileUri}
、
Terminatorの設定はCommandが/usr/bin/terminator
、Argumentsが--working-directory ${filePath}
です。
おわりに
いろいろ書いているうちにごちゃごちゃし始めたので、この辺にしておきます。
GUIで操作できるのはとても楽だし、視覚的にわかりやすいですが、本当にはじめてGitを勉強するひとは一回コマンドラインで基本的な操作する練習をしてから使ってみるといいと思います。でないと何をやっているのかわからないままSmartGitに慣れてしまうと、GUI環境がなくなったときにどうすることもできない状況になると困るかなと。
Gitに慣れてきたら日常的に行う操作に関しては、SmartGitでやると楽だと思います。特に前回コミットと現在変更した箇所の差分が表示されるので、これが便利だと思います。
あとコミットするファイルを視覚的に選択できるのがいいですね。git add
だとこれはコミットしたいけど、これはいいとかいう操作がしづらいですから。
一方で複雑な操作をする場合、コマンドでやったほうがわかりやすいときもありますのでGUIとCLIを使い分けていくといいですね。
本日は以上です。最後まで閲覧していただきありがとうございました。