概要
Windowsで使えるGitクライアントは多数ありまして、私はSourceTreeをずっと使っていました。
そこでGitKrakenが良いよという話を聞き、試しに使ってみたところ不満点がかなり解消したので、本格的に使い始めました。そこで、SourceTreeと比較する形で、GitKrakenの何が良いのかを紹介しようと思います。SourceTreeを批判する意図はなく、差分としてGitKrakenが良いと思った点・悪いと思った点を書きます。
GitKrakenはパブリックリポジトリ以外で使うには有料ですが、個人で1ライセンスを使う分には今のところ月に225円くらいでそれほど高いわけでもないので、特徴にピンとくる点があれば検討してみると良いと思います。
最初に結論まとめ
「公式の日本語化がない」「メニューが多すぎて逆に迷う」というGUI上の問題点や、FileやHunk単位でのコミット無しRevertの操作がないという細かい問題はありました。しかし、多くの点では優れていてとても使いやすいと感じたため、お勧めです。
説明
GitKrakenの特徴をSourceTreeとの比較も交えて箇条書きで紹介していきます。ただし、これは私が理解しているSourceTreeとの比較です。もし私が知らないだけでSourceTreeにも同じ特徴があったらすみません。コメント等で指摘してもらえると嬉しいです。
GitKrakenの方が機能が多い点
- git worktreeがUI上で使えて、worktreeの切り替えもできる
- ファイルのStage/Unstageがワンクリック(ファイル名の上にボタンがポップアップする)
- プロファイル切り替え機能があって、プロファイルの切り替えによってメアドや認証情報を使い分けられる
- ターミナルをGitKrakenのリポジトリタブの中に開ける
- どちらが良いかは好みだが、個人的にはSourceTreeの「独立した別ウインドウでgit bashを開く」より管理しやすいと思う
- GUIからブランチがある場所をcheckoutする時に、ブランチをチェックアウトするかコミットをチェックアウトするか選べる
- 地味だが、別のWorkTreeでチェックアウト済みのブランチと同じ場所をチェックアウトしたい時など、これがあると便利
- 各スタッシュについて、どのブランチ上で行ったものなのかが、ブランチツリー上へ表示される
- ブランチのチェックアウト時に、ff関係にあるリモートブランチがあれば、マージもまとめて実行してくれる
- どちらが良いかは好みだが、ff関係にあるケースでは最新のコードを見たい場合が多いので、自動でやってくれるのは助かる(branch -fなどで手動でやらなくても済む)
GitKrakenで問題が解消した点
- GitHubなどの認証が安定している。GitKrakenはOAuthで接続すれば、その後に認証のトラブルが起きていない
- 私の環境だけかもしれないが、Windows上のSourceTreeでは、認証周りで色々(この記事など)悩んだり、認証済みのはずが急に認証プロンプトが出てきたり、妙にトラブルが多いので
- 開いているタブ一覧の自動保存が安定している
- 私の環境だけかもしれないが、SourceTreeではなぜかタブのオープン・クローズを自動保存してくれる時とダメな時があり、閉じてもアプリを起動し直すと復活するタブなどがあったので
GitKrakenの方がいまいちと思った点
- FileやHunk単位でのRevert(コミット無し)の操作がない。
- この議論などを見る限り、無さそう https://stackoverflow.com/questions/43275419/reverting-one-file-in-gitkraken
- コマンドで
git revert —no-commit
など、手動で解決するしかない?
- 右クリックのコンテキストメニューの数が多すぎて、目的の操作を見つけづらい
- 便利さとトレードオフだが、それにしても多い気はした
- 公式の日本語化が無い
使っていて感じた違い
明確な機能差ではないものの、使っていて感じた違いを書きます。
- タスクマネージャを見た印象程度の話だが、SourceTreeは動く時にgitプロセスを多数起動するためかディスク使用率が高く、GitKrakenは単独プロセスで動作してCPU使用率が高い感じに見える
- そのため私の環境ではセキュリティソフトとの関係などでGitKrakenの方が軽く感じる
- GitKrakenはブランチツリーの中にStatus表示やコミットの欄があり、SourceTreeはそれらが2つの画面に分かれている
- どちらが良いかは好みだが、SourceTreeは画面を切り替える度にリロードが始まるようで切り替えながら操作していると急にカーソルが一番上に飛ぶなど不満があったので、個人的にはGitKrakenの動作の方が好み
- GitKrakenはマージを行う際にmergeとff(fast-forward)のメニューが分かれていて、ff可能でもmergeを選ぶとマージコミットが作られる。SourceTreeはmergeを選ぶとffになります
- 起動時のクラーケンらしき浮遊キャラクターが可愛い
変わらない点
普段使いしている便利な機能はSourceTreeにもGitKrakenにも一通り有った。Stage/Unstageを分ける分割ウインドウ、コミット時にammendするチェックボックス、コミットしてそのままpushするチェックボックス、複数のリポジトリをタブで管理して切り替える機能など。
まとめ
使って感じた違いをまとめてみました。こうしたツールには好みがあるので、GitKrakenを使ってみたいと感じた人、それなら不要だなと感じた人、色々だと思います。
ツールは作業効率に直結するので、気になった人はぜひ試してみてください!