git reset

ポータル git

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

入門git
入門git
posted with amazlet at 11.06.17
Travis Swicegood
オーム社
売り上げランキング: 10931

git_reset.txt · 最終更新: 2013/08/23 19:00 by Takuya Nishimoto
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0