61
60

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 5 years have passed since last update.

Gitのブランチ名を返すエイリアスを設定したら地味に捗った

Last updated at Posted at 2018-04-11

設定したalias

まず設定したaliasはこちらです。.zshrcやら.bashrcに設定します。

.zshrc
alias brname='git symbolic-ref --short HEAD'

2018-04-11 17_01_23.gif

すると、brname で今のリポジトリのブランチ名を標準出力で返すようになりました。

コマンドと組み合わせる

追記
こちらのaliasを使った例ですが、aliasを使わなくてもできる方法をコメントにて指摘頂いており、
Gitのブランチ名を返すエイリアスを設定しなくても地味に捗った
にまとめましたので、こちらも併せてご参考下さい。

git push

ブランチをローカルで作ってリモートに初めてpushする時に使えます。

git push -u origin $(brname)

毎回ブランチ名をコピペしてpushしていた作業がコピペ不要になります。

**追記:**コメントにて push -u については git push -u origin HEADがこれと同じ意味になるとの指摘をいただきました。確かにこちらだとaliasも不要ですね…!

git pull

自分の今いるブランチのみpullすると、余計なものをpullせずにすむのでブランチ名で指定したい時に使えます。

git pull origin $(brname)

毎回ブランチ名をコピペしてpullしていた作業が(ry

git diff

今いるブランチのリモートとローカルの差が知りたい時に使えます。

git diff $(brname) origin/$(brname) --stat

※ オプションはお好みで

毎回ブランチ名をコピペして(ry

git reset

今いるブランチのリモートの状態にresetしたい時に使えます。

git reset --hard origin/$(brname)

毎回ブラン(ry

他にもいろいろありそうですが

とりあえず、自分が日常で使っているのはこんな感じでした。
他にもブランチ名を入れたいところに使うことができるので、いろいろな使い道がありそうです。

補完で呼び出す (fish、zsh)

$(brname) を使ってgit操作をしていると、今いるブランチに対して使うコマンドが、すべて同じコマンドになってくることが分かるかと思います。

そうなると、fishのような補完を使える場合には、コマンドを打っている途中に過去のコマンドの履歴からいつものコマンドを補完してくれるのでかなり楽になります。

自分はfishを一時期使ってはいましたが今はzshに戻ってきてまして、zshで同じことが出来るようにzsh-autosuggestions を使っています。
(下記のGIFの途中まで打っていてグレーになっているのがそうです。)

zshの入力をfishっぽくする。(CLIのハイライトと予測補完

2018-04-11 14_06_29.gif

まとめ

地味なエイリアスですが

  • 無駄なTypoを防ぐ
  • コピペの手間削減
  • 補完を使うことによりタイプ数も減る

効果が期待できますので、結果地味に捗りました。 → 続きの記事書きました。
Gitのブランチ名を返すエイリアスを設定しなくても地味に捗った

61
60
8

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
61
60

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?