🌟

リモートの変更を取り込むときに stash しなくてよくなるコマンド

2024/09/28に公開

はじめに

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を付けている理由は、マージコミットを避けて履歴をきれいに保ちたいからです。

上記のコマンドの流れ

  1. 未コミットの変更があるかをチェックする。
  2. 変更があれば、それらを自動的にスタッシュする。
  3. git pull --rebase origin [ブランチ名] が実行される。
  4. スタッシュした作業が復元される。

これを一発でできるのはかなり便利ですね!

グローバル設定

毎回git pullするたびにオプション指定するのが面倒な場合は、以下の設定をすることで、
常に--rebase--autostashを有効にすることができます。

git config --global pull.rebase true
git config --global rebase.autostash true

これで、毎回オプションを付ける手間を省けます👍

Discussion