[git]リビジョンの復元
undo git --amend
ソース:How to undo “git commit --amend” done instead of “git commit”
新しいcommitで書く必要がありますが、
たとえば、次のcommitがスタックされているとします.
詳細な
ソース:How to undo “git commit --amend” done instead of “git commit”
新しいcommitで書く必要がありますが、
--amend
オプションで上書きする場合があります.この場合、次のコマンド言語を返すことができます.(ただし、前のコマンドがgit commit --amend
であれば)$ git reset --soft HEAD@{1}
使用方法を返すにはreflog
を使用します.たとえば、次のcommitがスタックされているとします.
$ git log --pretty=oneline
1a410efbd13591db07496601ebc7a059dd55cfe9 third commit
cac0cab538b970a37ea1e769cbbde608743bc96d second commit
fdf4fc3344e67ab068f836878b6c4951e3b15f3d first commit
4番目のcommitを誤って--amend
と書くと、git log
は3番目のcommitが消えたことを示す$ git commit --amend -m "fourth commit"
484a59275031909e19aadb7c92262719cfcdf19a fourth commit
cac0cab538b970a37ea1e769cbbde608743bc96d second commit
fdf4fc3344e67ab068f836878b6c4951e3b15f3d first commit
git reflog
を使用すると、消失した3番目のcommitがHEAD@{1}
に表示されます.$ git reflog
484a592 HEAD@{0}: commit (amend): third commit(2)
1a410ef HEAD@{1}: commit: third commit
cac0cab HEAD@{2}: commit: second commit
fdf4fc3 HEAD@{3}: commit: first commit
このときHEAD@{1}
とは、Gitのreflog
が変更されるたびに残されたログであるHEAD
を意味する.よく使われるgit log
を使うと見えませんが、git log -g
またはgit reflog
を使うと見えます.commit --amend
からHEAD
に変更されたため、reflog
が残り、reflog
を使用して戻ることができます.詳細な
reset --soft
については、Gitの内部操作とデータ復旧の「データ・リカバリ」タブを参照してください.Reference
この問題について([git]リビジョンの復元), 我々は、より多くの情報をここで見つけました https://velog.io/@dal-pi/git-amend-되돌리기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol