🦥
git pull --autostashでstashとpopを自動化する
結論
-
--autostash
オプションをつけることでpull
のときにstash
とpop
を自動化できます。
e.g.
git pull origin main --autostash
-
--autostash
オプションをつけると以下が自動で行われます-
pull
の前にローカルに未コミットの変更があればstash
する -
pull
が終わったらstash
した変更をpop
する
-
- グローバルに設定することもできます
git config --global pull.autostash true
※ rebase
のときも同様に--autostash
をつけることでautostash
が有効になります。
はじめに
ローカルに未コミットの変更がある状態でpull
することはありませんか?そんなときはstash
してpull
して、pull
が終わったらpop
していました。これがなんとも面倒ですよね。
そんなときに便利なオプションがありました!autostash
です✨
この記事ではautostash
の使い方を紹介します。
autostash の使い方
pull するとき
autostash
はpull
のオプションなので、pull
のときに--autostash
をつけるだけでOKです。
(※後述しますがrebase
でも使えます!)
git pull --autostash
rebase するとき
rebase
のときも同様に--autostash
をつけるだけでOKです。
git rebase --autostash
グローバルに設定する
autostash
はデフォルトでは無効(false
)になっています。なので、pull
するときに毎回--autostash
をつけなければなりません。毎回つけるのは面倒だ!というときは、グローバルに設定してしまいましょう🥳
# pull
git config --global pull.autostash true
# rebase
git config --global rebase.autoStash true
これでpull
するときに--autostash
をつけなくてもautostash
が有効になります。
autostash してほしくないとき
グローバルに設定したけれどautostash
してほしくないときもあるかと思います。そんなときは--no-autostash
をつけることで無効にできます。
# pull
git pull --no-autostash
# rebase
git rebase --no-autostash
おまけ
autostash
を紹介しましたが、それでも手動でpop
する機会はありますよね。git stash list
でstash
の一覧を確認して、pop
したいstash
の番号を探して、0番目をpop
したいときは
git stash pop stash@{0}
としていましたが
git stash pop 0
とできることを最近知りました😇stash@{0}
を0
に省略できるんですね!
Discussion