【Gitコマンド】コミットをミスってしまっときの対応方法

※自分用メモ

先日コミットミスをした。。。
内容としてはpullせずにpushしようとしたせいだった。。。
で、「pullしろ」って指示が書いてあったので そこからpullしようとしたら

Merge branch 'master' of ssh://...
merge made by 'recursive' strategy

と返ってきた。。。。
これは何かというと
「最新のマスターを自分おブランチにマージした」というログで、
自分の修正がpullしたmasterブランチの最新の修正よりも前だったら
返ってくるコミットメッセージである。
そこで、git logを見てみると。。。ログが2つ追加されている。。。orz
こういう時はgit reset --hard HEAD^で直前のコミットを取り消してから
git fetchしてからgit rebaseを行い、ローカルを最新にしてから
またgit pushをする。

もう一つよくやるのは、
git pullもちゃんとしたが、同じタイミングで誰かが
git pushをした場合にもエラーが返ってくる。。。
そんなときのメッセージが

hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

と何が起こったのか、と何をしたらいいのかを教えてくれる。
この場合はヒントに書いてあるように
git pullするのだが、正確には
git pull <branch> --rebaseである。
これはgit pullのオプションで「--rebase オプションをつけてプルしたほうがマージコミットが作られないし履歴がキレイさっぱりになるから」です。
※教えてもらった人を引用した