[macOS向け] gitのクライアントはGitUpがいいぞ。

> ツイッタフォローしてやで(ﾎﾞｿｯ　https://twitter.com/JotaroUT

# いろいろ使ってみたけどGitUp、やめられませんでした。

Macbookをスタバで開いてはプロジェクトをgitで管理する機会の多いであろう諸兄・諸姉のために、独断でイケてるなと思ったgitのGUIクライアントについて紹介したい。その名もGitUp。

GitUp : http://gitup.co/


## GitUpとは
GitUpはmacOS用に開発されたgitのGUIクライアントである。
公式ホームページに、
> Work quickly, safely, and without headaches. 

とあるように、確かに使っている間は頭痛がしない気がする。大きな特徴としては、謳い文句の通り、 ___早い___。

### ざっくりした使い方
#### コミットを参照する。
ここでは、openFrameworks (https://openFrameworks.cc) のgithubプロジェクトを例にとって説明する。
既存のローカルリポジトリをGitUpで開くと、このような画面が出てくる

![スクリーンショット 2018-05-24 20.21.03.png](https://qiita-image-store.s3.amazonaws.com/0/86040/c7d5a0fa-d5d3-63de-3ffe-e0641761b36b.png)

おぉ、なんかもうすでに___早い___気がする。この状態で矢印キーを押すと、ログのツリーのノードを辿れる（青い吹き出しが出てくる。）

ここでスペースキーを押すと、

![スクリーンショット 2018-05-24 20.24.16.png](https://qiita-image-store.s3.amazonaws.com/0/86040/d801ae68-e2ef-de7e-c318-e89c29e8ade6.png)

そのコミットの変更点をひと目で見ることができる。矢印キーでコミットファイルを行き来できる。___早い___。`Cmd+{↑or↓}`を押すか、左上のくの字のボタンをクリックすると、そのブランチを前後にたどることができる。`Esc`キーでもとの画面に戻れる。

ブランチを切りたいときは、`B`キーを押すだけで、

![スクリーンショット 2018-05-24 20.26.55.png](https://qiita-image-store.s3.amazonaws.com/0/86040/8230daf9-5f30-8613-b454-84b03113a2e9.png)

名前何にする？と聞かれるので適当に打つと

![スクリーンショット 2018-05-24 20.29.05.png](https://qiita-image-store.s3.amazonaws.com/0/86040/842c21a3-1fcd-085a-3fc4-5d65cc5b7422.png)

ブランチが新しくチェックアウトされているのがわかる。

#### 変更をコミットする。

`Readme.md`にちょっと失礼して、変更を加えて、`Cmd+2`でCommit Historyを見ることができる。(ウィンドウ上の3つのビューは`Cmd+{1,2,3}`でそれぞれ切り替えができる。

![スクリーンショット 2018-05-24 20.31.49.png](https://qiita-image-store.s3.amazonaws.com/0/86040/eba0ddb7-57b5-20b1-5af4-eecafbd881f9.png)

変更点のdiffを見ることができる。変更点をステージングするときは、この状態で`Enter`を押すだけ。

![スクリーンショット 2018-05-24 20.33.01.png](https://qiita-image-store.s3.amazonaws.com/0/86040/5d05b8b2-3405-327a-efab-1ee82942d404.png)

Indexに変更点がステージングされた。(部分的にコミットしたい場合は、右側のコードで対象の行をドラッグして選択したあとに`Enter`でOK。)___早い___。

コミットメッセージは下の大きなボックスに書き込みすることができる。Working Directory, Index, Commit messageは`Tab`キーでさくさく行き来することができる。

![スクリーンショット 2018-05-24 20.40.27.png](https://qiita-image-store.s3.amazonaws.com/0/86040/3d477223-1801-6378-103d-09f5f73a1d5f.png)

下のCommitボタンを押すか、`option+Enter`でコミットできる。`Cmd+1`で、コミットが進んでいることを確認できる。


#### RemoteブランチにPushする。
`Cmd+shift+P`で直接Pushできる（リポジトリに権限がないのでこの例では無理）。ここまでマウスフリーでブランチ作成・変更点のステージング・コミット・Pushまでできてしまった。

#### Pullする。
`Cmd+P`でそのブランチの更新をPullできる。

#### 歴史をたどる。
`Cmd+1`でMapビュー（最初の画面)に戻り、左下にある`Show`から、`Remote Branch Tips` (または`Cmd+shift+R`)を選択すると、Remoteブランチを表示することができる。
ここで思いっきり下にスクロールすると・・・・


![スクリーンショット 2018-05-24 20.46.33.png](https://qiita-image-store.s3.amazonaws.com/0/86040/f5cc06aa-6788-3d94-e85c-8d35360ae659.png)

なんということでしょう、6年前のコミットログと圧巻のツリーを一望することができる。もちろん方向キーでたどり、スペースキーでログを確認できる。これだけのブランチを表示していても___めちゃくちゃ軽い___。　ちなみに、青い吹き出しが出ている状態で`Enter`キーを押すとそこにチェックアウトできる。6年前までのコミットまでは流石に20秒ぐらいかかったが、直前などのコミットまでであれば一瞬である。

#### ターミナルから起動したい
メニューバーから `Gitup>Install command tool`で、ターミナルからGitUpを起動できるようになる。対象のgitリポジトリ下で、

```
$(openFrameworks/) gitup
```

とするだけでGitUpが一瞬で立ち上がる。GitUpのマウスフリー環境の完成である。


##他のエディタと比較してみて

これまでに

- Github Desktop
- SourceTree
- GitKraken

を使っていたが、GitUpを使い始めてからは一度も帰ってきていない。どちらもショートカットキーも充実しているし機能的ではあるのだが、GitUpのほうがとにかくシンプルである。故に、なんとも言えない使いやすさを感じてしまった。（ここで言うのも申し訳ないのだが、どちらもフルに機能を使いきっているわけではないですm(_ _)m）

### Github Desktopとの比較
かなり優秀なgitクライアントで、特にこのアプリからPRを作成できたりもする。チュートリアルも充実していて、初めてgitクライアントを使う人にとっては優しいアプリと言える。私も最初はずいぶんお世話になっていた。しかしながらブランチ・コミットの切り替えが結構めんどくさいのである。ブランチ切り替え用のボタンまでマウスを運んでブランチを選んで・・・という作業が若干面倒くさいのである。PR作成機能に関しては、正直Webインタフェースのほうが充実しているのでそっちを使ってしまう。
![スクリーンショット 2018-05-24 21.03.48.png](https://qiita-image-store.s3.amazonaws.com/0/86040/7f46c1be-95a4-a785-4ab6-2fb85565f99e.png)

### SourceTreeとの比較
SourceTreeは機能性抜群で、ブランチごとのコミットログも簡単に一覧できるインタフェースを備えているが、特殊な機能があまりにも多すぎる気がする。フル活用すれば活躍の幅は広がると思われるが、その前にGitUpに惚れてしまったため、その機会も今の所無いのである（完全に個人的意見）。ただ明らかにビューの種類が多く複雑で、過去のログを見ようとするとカクついたりもする。

![スクリーンショット 2018-05-24 21.06.25.png](https://qiita-image-store.s3.amazonaws.com/0/86040/3e8bdf80-dfa7-c175-06b5-3f2bae203ab0.png)

### GitKrakenとの比較
使ったことはあったがこれはほぼ使えるようになる以前の問題で止めてしまって、更新で追加するという事態になって申し訳ないです。とりあえずイカが可愛く、ホームページが洒落ていて、なんだかいい感じじゃんと思ってはいた。
<img width="332" alt="スクリーンショット 2018-05-26 08.21.29.png" src="https://qiita-image-store.s3.amazonaws.com/0/86040/f2694361-7adb-d715-0bfc-e0aa363f1378.png">
にょーん　にょーん
・・・。
イカはたしかに可愛いが、___起動に７秒もかかっている___。Gitクライアントとしては明らかに不必要な時間をかけて起動している。その後にさらにOpening App... Opening Repo... と表示されて時間がかかっており、余計な処理までしまっているのではと思うぐらい ___遅い___ 。今回のテーマは「早い」だけに、ここでは残念ながら批判的にならざるを得ない。

![スクリーンショット 2018-05-26 08.39.26.png](https://qiita-image-store.s3.amazonaws.com/0/86040/e3d429e9-6013-01be-a834-1065a42beed9.png)
ナビゲーションもGitUpと比べれれば直感的とは言えず、十分に慣れるまでは「ステージングどうするんだっけ」となってしまう。SourceTreeと近いものを感じる。GitUpと比べてもﾝﾀﾝｯﾝﾀﾝｯとキーを叩いて仕事を済ませる気持ちよさはなかった。

さらにもう一つ、重大な課題を抱えているのに気づいてしまった。お気づきの諸兄・諸姉もいらっしゃるだろう。そう、GitKrakenは___CPU使用率が極めて高い___。普通に使っていると`GitKraken.app`だけではなく`GitKraken Helper`なるプロセスも実行されており、平均して70%以上ものCPU使用率を塩漬けにしている。うすうす雰囲気は感じていたが、黒幕としてGitKrakenはelectron Appであり、クロスプラットフォームではあるが重いという欠点を持つ。いくらelectronとはいえ、git処理にそこまで重くなくていいと感じるので、どこかで無駄な処理があるのだろうと思う。


## 早いと やっぱり 気持ちいい。
快適な作業環境にはサクサク動くインタフェースが欠かせないものである。思考と身体、視覚フィードバックの間の時間間隔が少しでも縮むだけで、作業の気持ちよさはぐっと向上する。特にソフトウェア開発に慣れてくるとマウスをも使いたくなくなり、なるべくキーボード上でインタフェースを行き来したくなるが、GitUpはそういった作業環境をよく考えて作られてあるように思う。必要な作業がサクサクできるようにあらゆるムダを省いたシンプルなgitクライアントだと思うので、是非試してもらいたい。

(なお、このクライアントでもこういうことできるよというのがあれば是非コメントを寄せていただきたいですm(_ _)m)