movee(モビー) オノデラのブログ

(株)movee代表。週末は自社サービスを作っています。

git stashについて

localでdevelop branchからlocal branchをきって開発してるときにだれかがorigin developにmergeした場合どうするとよいかメモする。 自分のlocal branchからlocal developにswitchしてgit pull origin developしたいが、local branchの改修がcommitされてないと怒られる。commitしてもよいがかなりざっくり改修中の場合はあまりcommitしたくない。その場合はlocal branchでgit stashする。これは改修の一時退避コマンド。

  1. git stash
  2. git checkout develop
  3. git pull origin develop
  4. git checkout local branch
  5. git stash pop

この順番でやれば、最新developを取り込んだうえで自分の改修もlocalに反映できる。

なおstashコマンドは以下。

  • git stash pop //一時退避を元にもどす
  • git stash list //一時退避の確認
  • git stash clear//一時退避の消去

stashはconflictが発生する場合があり、エディターでちまちまやってもいいが、commit側か、stash側かを一挙に選択できる。

  • git checkout --ours .//現在のコミットを採用する場合
  • git checkout --theirs .//stashを採用する場合