gitでたまによく使う操作、だからどうも覚えられないというものがある。 そういうものはエイリアスとして登録しておくと便利。
リモートブランチのチェックアウト
リモートにあるブランチをローカルでチェックアウトしたい場合はどういうコマンドになるか?
$ git branch <ローカルでチェックアウトするブランチ名> <リモート名/リモートのブランチ名> |
まあ覚えてしまえばなんてことはないんだけど大抵リモートのブランチ名のままローカルにもチェックアウトすると思うので、二度タイプするのが面倒。
そこで rco
(Remote Check-Out)というエイリアスを考える。
使い方:
# git rco [リモート名(省略可)] <ブランチ名> |
リモート名を省略して1引数にすると origin
として扱う。
.gitconfig
へのエイリアス登録は以下の通り:
#.gitconfig |
チェックアウトしたブランチに自動的にスイッチされる。
リモートブランチの削除
逆にリモートにあるブランチを削除するにはどうするか。
$ git push --delete <リモート名> <ブランチ名>... |
リモートが対象とはいえ「ブランチの削除」がgit push
というところがどうも覚えられなくて毎回調べてしまう。
そこで remove-remote-branch
というエイリアスを定義する(危険な操作なのでコマンド名を冗長に):
# git remove-remote-branch <ブランチ名>、または git remove-remote-branch <リモート名> <ブランチ名> |
.gitconfig
へのエイリアス登録は以下の通り:
[alias] |
マージ済みリモートブランチの削除
GitHubのプルリクエストでマージされたブランチは削除しないと溜まる一方になる。 そういう状態だと新規に作るブランチ名やzshの補完で面倒なことになるので削除したい。
[alias] |
いろいろ前提があるので気をつける必要がある:
- 開発ブランチ:
main
- リリースブランチ:
production
- リモート名:
origin
少し危険なので事前に確認として、最後の | xargs ...
を実行しないdry-runを行なったほうがいいかもしれない。
メインブランチにリベース
他人のコミットなどでメインブランチが更新された場合に、履歴をきれいにするためにローカルで作業中のブランチをリベースすることが非常によくある:
rtm
(Rebase To Main)
[alias] |
ツリー表示
Sourcetree などのGUIアプリが使える場合にはそれでいいんだけど、そうじゃない場合でもツリー表示が見たい。
tig などを入れて操作を覚えればいいんだけど、その手間も省きたい怠惰な人は his
(history)
[alias] |
エイリアス一覧
git config --list
して grep '^alias'
でも全然いいんだけども。
[alias] |