sh git重置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh git重置相关的知识,希望对你有一定的参考价值。

# ① 直前のコミットを取り消したい(コミットのみ取り消し)

git reset --soft HEAD^

# HEAD^:直前のコミットを意味する。
# @^、HEAD~も同じ意味。
# HEAD~{n} :n個前のコミットを意味する。
# HEAD^やHEAD~{n}の代わりにコミットのハッシュ値を書いても良い。
# gitのv1.8.5からは、「HEAD」のエイリアスとして「@」が用意されている。
# HEAD^^^とHEAD~3とHEAD~~~とHEAD~{3}と@^^^は同じ意味。
# --softなので、インデックス・ワーキングツリーはそのまま。
# 上書きコミットしたいなら、git commit --amendを使うとラク!


# ② 直前のコミットを取り消したい(マルっと消したい)

git reset --hard HEAD^

# --hardなので、「インデックス・ワーキングツリー」も1つ前のコミットの状態に戻る。


# ③ コミット後の変更を全部消したい

git reset --hard HEAD

# --hardなので、「HEADの位置・インデックス・ワーキングツリー」を全てHEADの位置に動かす。
# HEADの位置はそのまま。
# 「インデックス・ワーキングツリー」の変更が消せる。


# ④ addを取り消したい

git reset --mixed HEAD
# または、
git reset HEAD

# --mixed(or オプション無し)なので、「HEADの位置・インデックス」をHEADの位置に動かす。
# HEADの位置はそのまま。
# 従って、インデックスの変更(addした内容)のみ元に戻す。


# ⑤ すごい昔の状態で動作を確認したい

git reset --hard 昔のコミットのハッシュ値

# これをやる前に、pushして置くことを強くオススメします!
# reset --hardは基本的にすべて消えるので慎重に。
# 一応復活させる術はなくはない。
# remoteに最新の状態を記録しておけば、ローカルは好きな所に移動しても安心。
# コミットのハッシュ値はgit logで確認すればOK!
# 動作確認後、最新の状態に戻るには、また、

git reset --hard ORIG_HEAD

# をすれば良い。
# git reset --hard ORIG_HEAD:直前のresetをなかったことにするおまじない!
# git resetは未来の状態にも行ける。
# git reset --hard 最新のコミットのハッシュ値でも良い。
# git rebase origin/masterでも良い。
# rebaseで何か問題が起きたら下記参照。
# http://qiita.com/shuntaro_tamura/items/c505b76c1021a35ca9ff
# reset --hardやrebaseする時は、こまめにソースツリーの状態を確認しておくといいと思います。

以上是关于sh git重置的主要内容,如果未能解决你的问题,请参考以下文章

sh 重置Git回购

sh 用于git的bash命令重置所有目录并提取最新提交

git 重置为上一次提交,然后推送

sh 重置未推送提交

sh 重置orkave

sh 在推送之前重置qa5