git contribを使う
gitの中にあるcontribに便利ツールがいくつもあるので、それらをいくつか調べてみた。
※ $(CONTRIB_PATHT)が出てきた時は、git clone http://github.com/git/git をして、その中にあるcontribの事を指しています。
completion
おすすめ度:★★★★★
現在のbranch名の表示や、補完をしてくれる。
参考:Gitブランチ名を__git_ps1でbashプロンプトに表示 - 130単位
git-jump
おすすめ度:★☆☆☆☆
コンフリクトしたファイルや、変更したファイルを簡単に開ける。
導入
$ chmod +x $(CONTRIB_PATH)/git-jump/git-jump
$ ln -s $(CONTRIB_PATH)/git-jump/git-jump /usr/bin/git-jump
使い方
$ git jump [diff | merge | grep]
git diffでヒットしたファイル, コンフリクトしているファイル, grepでヒットしたファイルを開く事ができます。
複数ファイルがヒットした場合、最初の1つしか開けない気がします。
なお、開くエディタはcore.editorで指定しているエディタです。
どうもemacsにしているとうまく動作しない模様。
(うまく使う方法をご存じの方、是非教えてください。。)
diff-highlight
おすすめ度:★★★★★
git diffの表示をgithubっぽくする
どこが変わっているかをハイライトしてくれるので非常にdiffが見やすくなります。
導入
$ chmod +x $(CONTRIB_PATH)/diff-highlight/diff-highlight
$ ln -s $(CONTRIB_PATH)/diff-highlight/diff-highlight /usr/bin/diff-highlight
$ git config --global pager.log "diff-highlight | less"
$ git config --global pager.show "diff-highlight | less"
$ git config --global pager.diff "diff-highlight | less"
参考:Git の diff を美しく表示するために必要なたった 1 つの設定 #git - 詩と創作・思索のひろば (Poetry, Writing and Contemplation)
↑ どんな感じの表示になるかも、見やすく載せてくださってます
workdir
おすすめ度:★★★☆☆
複数ブランチ開発したいので、git cloneを……といった時に重宝する
導入
$ chmod +x $(CONTRIB_PATH)/workdir/git-new-workdir
$ ln -s $(CONTRIB_PATH)/workdir/git-new-workdir /usr/bin/git-new-workdir
使い方
$ git new-workdir <repository> <new_workdir> [<branch>]
ソフトリンクを使うようなので高速です。
ただ、僕はgit stash; git checkout branch; をする事が多いので使う場面は少なそう。
emacs
おすすめ度:★☆☆☆☆
emacs上でgit statusやblameの表示などをサポートする
導入
$ cd $(CONTRIB_PATH)/emacs
$ make
(add-to-list 'load-path "$(CONTRIB_PATH)/emacs")
(require 'git)
(require 'git-blame)
~/.emacsにこれを追記する
使い方
emacsでファイルを開いている状態で
M-x git-
でtab補完して色々使ってみると良いかと思います。
僕はemacsもvimもバリバリにカスタマイズしてゴリゴリ使う人ではないので便利なのか……? という感じでしたが、便利なのかも。
subtree
おすすめ度:★★★☆☆
submoduleと違って内部の物として外部のレポジトリを用いる。
git v1.7.11以降では標準装備だそうです。
導入
$ cd $(CONTRIB_PATH)
$ make
$ make install
$ ln -s git-subtree /usr/bin/git-subtree
使い方
--
他にも色々あるので、興味がある人は調べてみるといいと思います。
個人的には、completionとdiff-highlightは必須で他は結局使わなさそうだなぁという印象でした。