たくさんの自由帳
Androidのお話
たくさんの自由帳
投稿日 : | 0 日前
文字数(だいたい) : 2069
歴史改ざんです。
今回はGit Bashを使います。目に優しくないPowerShellだと日本語が化けちゃった。
というわけで.gitフォルダーがあるフォルダーで右クリックして、Git Bash Hereを選び起動しましょう。
プログラムの変更なしでコミットメッセージだけを変える場合は以下を叩きます。--amendってのが重要?
git commit --amend -m コミットメッセージリモートリポジトリへプッシュをする際は以下を叩きます。
git push -f origin HEAD動くかどうかは怪しい
まずコミット履歴を見ましょう。
git log叩くと以下のように表示されるはずです。
commit b1469aa3cf2cdddb9cfd4877a52018ff17756849 (HEAD -> master)
Author: メアドは隠させてもらったよ
Date: Sun Sep 27 02:57:26 2020 +0900
取り消し予定
commit 30eac0d8e356bc9e28d92f34edd8727bc45ff749
Author: メアドは隠させてもらったよ
Date: Sun Sep 27 02:47:00 2020 +0900
コミット練習
commit ae1c9930cfb302dc7680cd6ce94c7aaa6dbe5e84
Author: メアドは隠させてもらったよ
Date: Sun Sep 27 02:46:30 2020 +0900
メモ追加(メアドは隠させてもらいました)。
このコミットの中から、今回は一番上の取り消し予定ってコミットを消そうと思います。
それと、履歴表示を終了させてターミナルに戻る場合はキーボードのqを押します
コミットを取り消すんですが、注意したいことが
git reset --hard vs git reset --soft変更点をそのままにするかどうかです。
これを踏まえて、今回は変更点はそのままコミットのみなかったことにします。
git reset --soft HEAD^変更点はそのまま、コミットだけが取り消されてるはずです。
以下のコマンドを叩きます
git logすると、メモだよのコミットが無いことになっていますね!歴史改ざんktkr
commit 30eac0d8e356bc9e28d92f34edd8727bc45ff749 (HEAD -> master)
Author: メアド隠し
Date: Sun Sep 27 02:47:00 2020 +0900
コミット練習
commit ae1c9930cfb302dc7680cd6ce94c7aaa6dbe5e84
Author: メアド隠し
Date: Sun Sep 27 02:46:30 2020 +0900
メモ追加(メアドは隠させてもらったよ)
以下のコマンドを叩きます
git push -f origin HEAD-fをつけることで歴史改ざんを押し通す事ができます。
キーボードのqを押せばターミナルへ戻れます。
つまりこれやったってことですね。
git reset --hard HEAD^落ち着いてください!どうにかなります
以下のコマンドを叩きます
git reflogするとgit logよりも詳細な履歴が見れるはずです
30eac0d (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
b621189 HEAD@{1}: commit: 取り消し予定
30eac0d (HEAD -> master) HEAD@{2}: reset: moving to HEAD^
b1469aa HEAD@{3}: commit: 取り消し予定
30eac0d (HEAD -> master) HEAD@{4}: reset: moving to HEAD^
8cd8de9 HEAD@{5}: commit: 取り消すコミット
30eac0d (HEAD -> master) HEAD@{6}: reset: moving to HEAD@{1}
8780022 HEAD@{7}: commit: メモだよ
30eac0d (HEAD -> master) HEAD@{8}: commit: コミット練習
ae1c993 HEAD@{9}: commit (initial): メモ追加戻りたいコミットを探し(今回は:b621189 HEAD@{1}: commit: 取り消し予定)、HEAD@{1}の部分を控えます。
そして以下のコマンドを叩きます。
git reset --hard HEAD@{1}--hardじゃないとダメみたいです
これで無事に戻ってこれるはずです。
Git難しいね