• 追加された行はこの色です。
  • 削除された行はこの色です。
* git reset(git add/commitの取り消し) [#j2afffca]

** ステージングを取り消す [#l5b26aec]
 git add test.txt
 git reset HEAD test.txt
** 前提知識 [#de304cd4]
:ワーキングツリー|現在の状態
:インデックス|ワーキングツリーからgit addした状態
:HEAD|最後にコミットした状態
:HEAD^|HEADの1つ前のコミットした状態

** (コミットしてすぐの場合の)コミットを取り消す [#ve9b0731]
 git commit -am 'XXX'
 git reset --hard HEAD^
*** git resetとは? [#y5f70e20]
ワーキングツリーやインデックスやHEADの位置を移動する。(なお、コミットを修正する場合はgit commit --amendを使う。)

** (コミットして時間が経っていて、すでに他者が修正を行っている可能性が高い場合の)コミットを取り消す [#g90f15df]
 自分:
 git commit -am 'XXX'
 git push
** git resetのオプションとその機能 [#b3ef5d07]
*** soft [#v9b8df84]
 git reset --soft HEAD^
HEADの位置をHEAD^へ変更する。インデックスとワーキングツリーに影響はない。

 他者:
 git pull
 git commit -am 'XXX'
*** mixed(またはオプションなし) [#xb2cea95]
 git reset --mixed HEAD
 git reset HEAD
HEADの位置とインデックスをHEADへ変更する。ワーキングツリーに影響はない。

 自分:
 git revert HEAD
 git push
*** hard [#d1385b4a]
 git reset --hard HEAD^
HEADの位置とインデックスとワーキングツリーをHEAD^へ変更する。

 (他者)
 git pull

** 参考 [#t880fec6]
** 参考 [#r3d0bf0f]
- http://d.hatena.ne.jp/murank/20110327/1301224770
- http://transitive.info/article/git/command/reset/
- http://d.hatena.ne.jp/zariganitosh/20080905/1220621182


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS