2014年6月19日木曜日

git commitの上書きと取り消し

 ど素人なもので、commitしたのにあれ?まだやることあった、なんてことは日常茶飯事です。
 以下は覚えておかないといけません。

 まずamend。コミット後にファイル操作を追加した場合、前回のコミットを再適用(上書き)してくれます。でもこれはlogに残るので私のやりたいことではないみたい。
 amend(ment)にはあまりいい思い出がありません。英語なんて読めないのに仕事で英文の契約書agreementを読む必要があって、なんとか読み終わったら今度は長い追加・補足契約書amendmentが出てきたことを思い出します。
$ git commit --amend
コミットそのものを取り消してしまいたいときには以下を。これこれ。これがやりたいこと。HEADを一つ前のコミット時に移動させる意味?
$ git reset --soft HEAD^
下記でコミットと合わせてファイルの修正点も以前の状態に戻るようです。
 git reset --soft と git checkout -f、両方の性質を持っているということかな。まぁ、無闇に使うものではないのかも。
$ git reset --hard
間違ってresetしちゃった!ってときはORIG_HEADでreset前に戻れる。
$ git reset ORIG_HEAD 
下記の記事はHEADの意味も含めてわかりやすかった。

参考:
git reset についてもまとめてみる
【git】SourceTreeで解説!間違えたときのgitコマンドとやり方
GitのHEAD/ORIG_HEAD/FETCH_HEADについてのメモ

0 件のコメント:

コメントを投稿