あ、やべ。変なとこにコミットマージしちゃった。って時に、やり直したいなぁ、と。
ざっくりと、やり直したいところまで戻れるという事は聞いていたのでやってみた。
そこで行き詰った「このコミットを取り消す」。
私はGitをコマンド入力ではなく、Source Treeを使って操作しています。
戻りたいコミットの所で右クリック(Windowsの場合)して「このコミットを打消し...」を選択・実行するだけなんだけどもなんとエラーが!
error: Commit xxxxx is a merge but no -m option was given.
fatal: revert failed
(スクショ撮るの忘れた)
mオプションが指定されてませんよ。してください。みたいな内容。
mオプション?revert -mオプションて何や?という事で調査。
どうやらRevert(既存のコミットを元に戻すためのコマンド)をつかってコマンド入力でやるしかないらしい(..ざわ..ざわ...)
$ git revert -m 1 xxxxx
無事、戻る事ができました。(もちろん誰かに見てもらいながら
)
-m オプションとはメインラインの事で、通常はそちらを指定しておけば大丈夫との事。
git show
コマンドやgit log
コマンドで親の数字が確認できる(知らなかった)。
$ git show
commit xxxxx (HEAD -> ブランチ, origin/ブランチ)
Merge: aaaaa bbbbb
Author: 自分
Date: Thu Dec 10 16:19:52 2020 +0900
とはいえ、1とか2のどっちを指定するのが正しいのかは、分かっていないと大惨事になりかねないので、基本的なブランチだとかコミットだとかの概念に戻り復習。
こちらのサイトが分かりやすかったです(https://backlog.com/ja/git-tutorial/stepup/stepup7_2.html)
Source Treeを使うと視覚的にできてしまって、なかなか基本的な部分で「分かった気になる」のでダメですよね。反省
弊社はブランチ並行して行う事が多く、毎回「面倒な事起こるなよぉ~・・・」と祈りながら進めています。
Gitって説明だけ聞いてると、何が便利なんだろう?むしろめんどくさいんじゃん、って思ってた。
けど、履歴が終えたり大量のデータを軽く保存できたり、同時並行の作業ができたり。
使い方によっては便利ですね。
「バカとハサミは使いよう」って母さんと婆っちゃが言ってた。