rebaseを素早く実行出来る!rebase時に自動でstashする設定

2021.08.22
rebaseを素早く実行出来る!rebase時に自動でstashする設定

Gitの操作に慣れてくるとrebaseは欠かせないコマンドになってきます。


rebaseはデフォルトのままだとrebaseを行う際に変更ファイルがあるとrebaseを実行出来ません

忘れがちでやってしまってエラーが起きて思い出してstashして、、で中々厄介なんですよね。。



そこでrebase時に自動的にstashをしてくれる設定をご紹介します。

検証した環境

1 git 2.32.0

rebase時にstashを自動で行う

繰り返しになりますが、

デフォルトだと変更ファイルがあるとrebaseを実行出来ません

# 変更を加えたファイルがある
$ git status -s
 M README.md

$ git rebase master
error: cannot rebase: You have unstaged changes.
error: Please commit or stash them. #コミット か スタッシュ してからrebaseして、と言われる

そこで登場するのが rebase.autostash true

その名の通り、rebase時に自動的にstashをしてくれます



さらにrebase実行後にstashしたものを戻してくれるおまけ付き!便利!😍



設定方法

aliasを設定する時などと同じで、gitコマンドを使うかgitconfigに直接設定をします

$ git config --global rebase.autostash true
~/.gitconfig
[rebase]
    autostash = true




この状態で実行してみると


5,6秒の辺りで自動的にstashしてくれているのが分かります!

$ git rebase master
Created autostash: 9362368
Applied autostash.
Successfully rebased and updated refs/heads/develop.



そして最終的にはstashしたファイル(README.md)がstashから戻っています。

$ git status -s
 M README.md



これでrebase時に毎回stashを実行する必要がなくなります☺️

おすすめ