🍊

Git コミットの取り消し

2023/01/19に公開

コミットを取り消そう

コミットを消すことができる

  • git revertコマンド
  • git resetコマンド

コミットの取り消し

revert(特定のコミットを打ち消す)

  • 取り消したいコミットを打ち消すコミットを新しく作成することにより、
    特定のコミットに戻す
  • コミットを取り消したという記録が残るため安全
  • リモートリポジトリで変更しているものでは原則必須(resetは使わない)

reset(コミット自体を無かったことにする)

  • 特定のコミットまで戻したいときに使う
  • コミット履歴が消えるため、やや危険な方法
  • ローカルリポジトリだけのコミットを削除する場合に限定して利用する

1. revertについて

流れ_φ(・_・

ファイルを編集する(保存忘れない)

addでステージに登録する

git diff HEAD

で差分を確認
qで抜ける

git commit -m "コメント"

コミットする

git log -p

ログを確認する

編集したところのコミットを示すハッシュをコピー
qで抜ける

git revert ハッシュ


エディタvimが開く
(ここでコミットメッセージも記述できる、Shift+I、INSERT)
:wqでメッセージを保存

ファイルを見ると、取り消した状態まで巻き戻っている
ログを確認するとコミットを取り消したコミットもログが残っている!

最新のコミットを取り消す場合にははハッシュを指定しなくてもHEADを指定すればOK

git revert HEAD

2. resetについて

ファイルを編集する(保存忘れない)

addでステージに登録する

git diff HEAD

で差分を確認
qで抜ける

git commit -m "コメント"

コミットする

git log -p

ログを確認する

編集したところのコミットを示すハッシュ値をコピー
qで抜ける

git reset --hard

ハッシュ値

ログを確認すると、巻き戻ったところよりも新しいのコミットは無かったことになっている!

便利な反面、操作を間違えると復旧が大変だったり、復旧できなくなるので注意!

ファイルの削除をしよう

コミットした後のファイルを削除できる

  • git rmコマンド
git rm ファイル名

ファイルを削除した状態をコミット

git commit -m"ファイル名"

ディレクトリを削除したい場合

git rm -r ディレクトリ名

エラーがめちゃ発生して時間かかったけど何とか完了!😂
今日はここまで!
明日はもう金曜日〜〜はやすぎる!
土曜は予定あるから他削って勉強時間カバーするぞ、パワーー

Discussion