13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

エイリアスと無料GUIツールで脱GitKraken

Posted at

GitKrakenとは

gitの管理をGUIで見やすく操作するためのツールです。
2021年7月現在、publicなリポジトリは0円、privateになると有料です。
https://www.gitkraken.com/

なぜ脱GitKraken?

弊社では入社と同時にGitKrakenの有料プランを提供していましたが、使わない人には何かしら仕事で使えるアイテムを購入するための補助が出ることに。

GitKrakenは素晴らしいツールですが、下記を理由に使用しないことにしました。

活用しきれていない

大体pushとツリーを見ることにしか使用しておらず、
他はコマンドで行っておりツールの旨味を感じていませんでした。

他のことにお金を使える

お金を払わないとやりたいことができないわけではない

脱するための前提

pecotigVisual Studio Codeを導入します。
以下参考記事
peco - コマンド履歴が見れたり、gitコマンドと組み合わせてインクリメンタルサーチができるようになります
https://qiita.com/sukebeeeeei/items/9b815e56a173a281f42f
tig - gitクライアントツールです
https://qiita.com/vivid_muimui/items/7e7a740e6537749de0c0

これらのツールとエイリアスをうまく使ってやっていこうという話です。

本題

GitKrakenなしでいかにgitを使いやすくするか!
ということで基本エイリアスをはってコマンドは手軽に。
またツリーを見た方が分かりやすい動作についてはtigやGUIツールを使うことにしました。

git status

エイリアスをはりgsでみれるようにしています。

alias gs='git status'

もし中身が見たいときはVScodeの拡張、Git Lens、もしくはtigで閲覧できます。

git add / git commit

addは一度にstagingした後、git statusが見れるようにしています。
(変更がある全ファイルを確認してから一度にしてしまうことが多い)

function gas() {
  git add -A;
  git status;
}

alias gas='gas'

commitはこんな感じ

// gcm 'コミットメッセージ'
alias gcm='git commit -m'

// 直前のメッセージを書き換える
// gcmfix '修正' のように使う
alias gcmfix='git commit --amend -m'

git push

HEADをpushするようにしています(基本これしか使ってない)
GitKrakenでpushボタンをクリックするのとそこまで手間が変わらなくなったはず

alias gpu='git push -u origin HEAD'
alias gpo='git push origin HEAD'

git checkout

ここでpecoの便利さが発揮されました。
gcでローカルブランチを検索、Enterでチェックアウトできます。
Git Krakenだと一覧から選択、ダブルクリックという流れですが、それ以上の利便性があると感じています!
こちらの記事から拝借しました。
https://qiita.com/kazuooooo/items/92bf3146cafeb8fd8673
https://qiita.com/ymm1x/items/a735e82244a877ac4d23

// ローカル
alias gc='git branch | peco | xargs git checkout'

//リモートブランチを含めたい場合
function gcop() {
  git branch -a --sort=-authordate |
  grep -v -e '->' -e '*' |
  perl -pe 's/^\h+//g' |
  perl -pe 's#^remotes/origin/###' |
  perl -nle 'print if !$c{$_}++' |
  peco |
  xargs git checkout
}

alias gcop='gcop'

git stash

pop時はpecoを利用し、listの中から検索、Enterで実行できるようにしています。
こちらも下記記事を参考にさせていただきました。
https://qiita.com/kazuooooo/items/92bf3146cafeb8fd8673

alias gss='git stash save'![Something went wrong]()

alias gsp="git stash list | peco | awk -F '{|}' '{print $2}' | git stash pop"

きれいなツリーがみたい!

tig

tigを使用することで簡単に綺麗なツリーを確認できます。
https://qiita.com/vivid_muimui/items/7e7a740e6537749de0c0
またcherry-pickなどもGit Kraken同様、該当のcommitを選択して行うことが可能です。
スクリーンショット 2021-07-14 23.03.39のコピー.png

Git Graph

VScodeのプラグインで、Krakenさんと同じGUIツールです。
差分もVScodeで確認することができるため、視認性は申し分ないです。
またcherry pick、checkout、revertなど基本的な操作はここで行うことができました。
スクリーンショット 2021-07-07 16.57.26.png

ここでGit Krakenの強みを考えてみる

そもそもGitKrakenって何が便利なのだろうか

さくっとsquashが行える

GUIでsquashが簡単に行えるのは便利そうです。
Git Graphやtigだと簡単にはいかないようです。

GUIツールの中では見た目がかっこいい

まんまです。見た目良いなーと。
でもそれで言うとtigの見た目もなかなか好きです。

Git操作のほぼ全てを可能にしている

tigだとデフォルトではpushができない...など。
しかしGitKrakenならリポジトリのcloneから全ての操作をまかなえます。
一部できないこともあるようですが、基本行わない操作なので問題なし。

その他様々な機能を備えている

「1つ前のGit操作を戻す」なんかはとても便利。
また料金表をみると他サービスとの連携なども有料プランで使えるみたいですね。
https://www.gitkraken.com/pricing

結論

私のように元々GUIツールとコマンドを併用している方、
もしくは普段特殊なことをしない方はGitKrakenの機能を持て余してしまうと感じました。
また解約後、コマンドとtig・Git Graphで今まで通り(以上?)の操作感を得られています。
というわけで脱GitKrakenは成功に終わりました。
ありがたき補助で何を買うか考えたいと思います。

13
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
14

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?