概要

git stash超便利

内容

PHPでwebアプリを作ってる時に作業ディレクトリをlocalのhttpサーバで動かしてそのままデバッグするのが楽なのですが、普通に作業していざそれをgithubに公開だーってなったときに動かしてた設定が公開されないようにするのが面倒でした。
今までは

  1. masterでは作業せずに作業用のbranchを作って
  2. 設定ファイルはcommitしないように注意しながら作業
  3. masterに移動する前に設定ファイルをどこか別の場所にコピー
  4. git checkout -- 設定ファイル
  5. masterに移動して作業branchをmerge
  6. git pushとかする
  7. 作業branchに戻って3でコピーしたファイルを元に戻す

とかやってたんですけど
この3と7のコピーが面倒でこれ絶対楽できる方法あるだろーって思いつつ調べもせずに放置してたんですが今日やっとgit stashを知る事が出来ました!*1

以下やり方メモ

webアプリを動かす設定をしつつ改造する方法

  1. 作業用ブランチを作ってそこへ移動
    $ git branch use
    $ git checkout use
  2. 使うための自分の設定を書いて改造を進める
    設定ファイルの公開したくない部分とかデバグ用の部分はcommitしないように気をつける
  3. このままだとcommitしてない編集済みのファイルがあるのでcheckout出来ないが
    $ git stash
    とするとcheckout出来るようになるのでmasterに移動する
  4. masterで作業用ブランチをマージする
    $ git merge use
  5. 作業用ブランチに戻る
    $ git checkout use
  6. 設定ファイルの内容を戻すためにgit stash popする
    $ git stash pop
  7. masterにcheckoutする前の状態に戻ってるので作業が再開出来る