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を実行する必要がなくなります☺️