gitignoreへ指定しているファイルをgit管理へ含める

git管理していて.gitignoreに指定すると、git管理下から外せますがそれでも1回だけ管理下へ入れたいときには

$ git add -f (入れたいファイル)

とすれば、管理下へ入ります
database設定ファイルのテンプレートをあげた時に使いました

gitで1ファイルを過去のコミットへ戻す

gitでうっかりファイルを上書きしてコミット、昔の変更が飛んでしまった..ときの修正ファイルの戻し方

git logとかtigとかgithubとかbitbucketとかお使いのもので、ハッシュを調べます

$ git log /path/to/file
とかで 791d6ce を調べて

$ glt checkout 791d6ce /path/to/file

これでstagingに戻ります
(git add された状態)

gitでaddしてないファイルをすべてなかったことにする

gitで管理してるディレクトリに大量にファイルをしてしまった..

$ git status

On branch v.2.13.3
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   data/Smarty/templates/default/abouts/index.tpl
        modified:   data/Smarty/templates/default/cart/index.tpl
        modified:   data/Smarty/templates/default/contact/complete.tpl
        modified:   data/Smarty/templates/default/contact/confirm.tpl
        modified:   data/Smarty/templates/default/contact/index.tpl
        modified:   data/Smarty/templates/default/entry/complete.tpl
        modified:   data/Smarty/templates/default/entry/confirm.tpl
        modified:   data/Smarty/templates/default/entry/index.tpl
        modified:   data/Smarty/templates/default/entry/kiyaku.tpl
        modified:   data/Smarty/templates/default/error.tpl
        modified:   data/Smarty/templates/default/footer.tpl
        # 延々に続く..

となったときに全て無かったことにするには

$ git clean -f

これで元通り
あ、すべて消えるのでご使用はお気をつけてください

gitで作業を一時的に退避させて違う作業をする

gitでファイル管理して作業中、急な依頼が..だいぶきりが悪い..
そんなときにはgit stash

$ vim sample.txt
とかでがーーーと作業中、急な依頼

$ git stash save
Saved working directory and index state WIP on master: 6ea09e4 add sample3
HEAD is now at 6ea09e4 add sample3

などと、変更したファイルがなかったことになって、最後のコミットへ戻ります

急な依頼を対応して..
もとに戻すには

$ git stash list
stash@{0}: WIP on master: 6ea09e4 add sample3

stashした数だけ保存されてます
最新を元に戻すなら
$ git stash pop

戻したいものを指定するなら
$ git stash stash@{0}

とすればいいです

stashたまに便利です