ロゴテキスト ロゴ

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

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

    プロフィールの背景画像 プロフィール画像
    Yuki Takara
    都内でフリーランスのエンジニアをやってます。フロントとアプリ開発メインに幅広くやってます。