since 2011-06-17
git で直前のコミットを取り消す(ファイルの内容は元に戻さない):
$ git reset --soft "HEAD^"
さらに git add も取り消す(ファイルの内容は元に戻さない):
$ git reset HEAD foo.txt
gitでファイルの変更をすべて取り消し前回コミットした時の状態に戻す
$ git reset --hard HEAD
つい git revert と書きたくなるが、そういうコマンドはない。
別のやりかた git_checkout git_stash
別のやりかた git_stash
since 2011-06-17
master で作業していたが、やっぱり別ブランチにしておけば良かった、と後から思った場合。
とりあえず思いついたやり方
(1) 変更を git diff でファイルに保存 git_diff
$ git diff --no-prefix HEAD~ > ../_patch
(2) 前回コミットの状態に戻す
$ git reset --hard HEAD
(3) 新しいブランチを切ってチェックアウト
$ git checkout -b working_branch
(4) 新しいブランチに変更をパッチ当てする
$ patch -p0 < ../_patch
(5) 作業ブランチをコミット(必要なら push も)
$ git commit -a -m "message" $ git push origin working_branch
(6) 元のブランチに戻す
$ git checkout master
since 2013-08-23
git merge した。コンフリクトした。手作業で直そうとしていたが、無理そうなのでいったん merge する前の状態に戻したい:
$ git reset --hard ORIG_HEAD
<html> <div class="amazlet-box" style="margin-bottom:0px;"><div class="amazlet-image" style="float:left;margin:0px 12px 1px 0px;"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/427406767X/r4wh-22/ref=nosim/" name="amazletlink" target="_blank"><img src="http://ecx.images-amazon.com/images/I/41k7xonwpdL._SL160_.jpg" alt="入門git" style="border: none;" /></a></div><div class="amazlet-info" style="line-height:120%; margin-bottom: 10px"><div class="amazlet-name" style="margin-bottom:10px;line-height:120%"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/427406767X/r4wh-22/ref=nosim/" name="amazletlink" target="_blank">入門git</a><div class="amazlet-powered-date" style="font-size:80%;margin-top:5px;line-height:120%">posted with <a href="http://www.amazlet.com/browse/ASIN/427406767X/r4wh-22/ref=nosim/" title="入門git" target="_blank">amazlet</a> at 11.06.17</div></div><div class="amazlet-detail">Travis Swicegood <br />オーム社 <br />売り上げランキング: 10931<br /></div><div class="amazlet-sub-info" style="float: left;"><div class="amazlet-link" style="margin-top: 5px"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/427406767X/r4wh-22/ref=nosim/" name="amazletlink" target="_blank">Amazon.co.jp で詳細を見る</a></div></div></div><div class="amazlet-footer" style="clear: left"></div></div> </html>