1. maejimayuto

    No comment

    maejimayuto
Changes in body
Source | HTML | Preview
@@ -1,56 +1,73 @@
# `revert`
特定の commit を打ち消す内容の commit をする
間違えた commit も歴史として残る
間違えたことを歴史として残したい場合に行う
`HEAD` は、 commit hash でもOK
## 直前を打ち消す commit をする
```bash
git revert HEAD
```
## 2つ前の commit だけを打ち消す commit をする
conflict する可能性がある
```bash
git revert HEAD~1
```
## 範囲を指定して打ち消す commit をする
```bash
git revert HEAD~7...HEAD
```
## `revert` をやり直したい
conflict などして、revert に失敗
再度 revert をやり直したい時
```bash
git revert --abort
```
-# 勉強中のため、正しくない可能性が高い
# `reset`
-特定の commit を消し去る⚡️
+ファイル変更と add と特定の commitを消し去る⚡️
間違えたことを歴史から消し去りたい場合に行う
`HEAD` は、 commit hash でもOK
+ref. [\[git reset \(\-\-hard/\-\-soft\)\]ワーキングツリー、インデックス、HEADを使いこなす方法 \- Qiita](https://qiita.com/shuntaro_tamura/items/db1aef9cf9d78db50ffe)
+
+## add したファイルを index から working directory に戻す(add を取り消す)
+
+```bash
+git reset
+```
## 直前の commit を index に戻す
```bash
git reset --soft HEAD~
```
-## 直前の commit を消し去る
-
-**完全に commit 履歴が消える**ので、この操作は慎重に行うこと
+## ファイル変更と add と直前の commit を取り消す
```bash
git reset --hard HEAD~
```
+
+## やべ! `reset --hard` 間違えてしちゃった!!
+
+```bash
+$ git reflog
+019c3d2a (HEAD -> feature/fix-validation, origin/feature/fix-validation) HEAD@{0}: commit: remove
+7e01141b (origin/develop, develop) HEAD@{1}: checkout: moving from develop to feature/fix-validation
+7e01141b (origin/develop, develop) HEAD@{2}: pull: Fast-forward
+...
+$ git reset --hard HEAD@{1}
+```
+
+ref. [\`git reflog\` についてまとめてみる](https://gist.github.com/kymmt90/9c997726b638b316f9be07aa4e3eea5e)