🌟
リモートの変更を取り込むときに stash しなくてよくなるコマンド
はじめに
git stashして pullして popするまでを一発でやってくれるコマンドです。
編集中のファイルがある状態で pull や rebase したいときに便利です!
git pull origin [ブランチ名] --rebase --autostash
手元に変更差分がある状態でリモートブランチをpull
したい時って結構あると思うんですけど、
ただ手元に変更差分があるとスタッシュしてください
という警告が出てpull
できないんですよね😢
なので今まで、以下の3つのコマンドを実行してリモートブランチをpull
していました。
git stash // スタッシュして
git pull --rebase // リモートの変更を取り込んで
git stash pop // スタッシュした作業を元に戻す
この3工程がとにかくわずらわしかったんですが、この--autostash
オプションをつけると勝手にstash
して勝手にpop
してくれるので、以下のコマンドを1回実行するだけで良くなりました!
git pull origin [ブランチ名] --rebase --autostash
--rebase
を付けている理由は、マージコミットを避けて履歴をきれいに保ちたいからです。
上記のコマンドの流れ
- 未コミットの変更があるかをチェックする。
- 変更があれば、それらを自動的にスタッシュする。
-
git pull --rebase origin [ブランチ名]
が実行される。 - スタッシュした作業が復元される。
これを一発でできるのはかなり便利ですね!
グローバル設定
毎回git pull
するたびにオプション指定するのが面倒な場合は、以下の設定をすることで、
常に--rebase
と--autostash
を有効にすることができます。
git config --global pull.rebase true
git config --global rebase.autostash true
これで、毎回オプションを付ける手間を省けます👍
Discussion