git revert
コマンドは、反映されたコミットの変更を削除して以前に戻します。コードはコミットが反映されていないように見えますが、revert commitは追加され、履歴を確認できます。
1. 特定のコミットをリバートする方法
git revert <commit id>
は引数に渡されたコミットの修正を元に戻します。
以下のように commit が登録されており、ここで commit 971c858 (4th commit)
が適用されなかったかのように、修正を元に戻そうとします。
$ git log
commit 5551f386aa1c22c26ea6aaf678e7cdbf2cded39b (HEAD -> master)
Author: JS <farfs.dev@gmail.com>
Date: Sat Jun 26 13:19:30 2021 +0900
5th commit
commit 971c858b160aebc1c6c47ae4713959d36d2e2a52
Author: JS <farfs.dev@gmail.com>
Date: Sat Jun 26 13:19:00 2021 +0900
4th commit
commit 10d7d0f6f52539a4e7a1867449b7d6fa023a2685
Author: JS <farfs.dev@gmail.com>
Date: Fri Jun 25 21:03:38 2021 +0900
third commit
git revert <commit id>
を入力すると、この変更が適用されなかったようになります。
$ git revert 971c858b160aebc1c6c47ae4713959d36d2e2a52
Removing Second.java
[master 9f4586e] Revert "4th commit"
2 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 Second.java
git log
を見ると、Revert "4th commit"
という名前でcommitが一つ追加されました。
このコミットは 4th commit
の修正を削除しました。
$ git log
commit 9f4586eaf107d84a5b99c6cc538c4006e6e01285 (HEAD -> master)
Author: JS <farfs.dev@gmail.com>
Date: Sat Jun 26 13:20:17 2021 +0900
Revert "4th commit"
This reverts commit 971c858b160aebc1c6c47ae4713959d36d2e2a52.
commit 5551f386aa1c22c26ea6aaf678e7cdbf2cded39b
Author: JS <farfs.dev@gmail.com>
Date: Sat Jun 26 13:19:30 2021 +0900
5th commit
commit 971c858b160aebc1c6c47ae4713959d36d2e2a52
Author: JS <farfs.dev@gmail.com>
Date: Sat Jun 26 13:19:00 2021 +0900
4th commit
commit 10d7d0f6f52539a4e7a1867449b7d6fa023a2685
Author: JS <farfs.dev@gmail.com>
Date: Fri Jun 25 21:03:38 2021 +0900
third commit
変更を見ると、Revert "4th commit"
が4th commit
の修正を削除したcommitであることがわかります。
$ git show 971c858b160aebc1c6c47ae4713959d36d2e2a52
commit 971c858b160aebc1c6c47ae4713959d36d2e2a52
Author: JS <farfs.dev@gmail.com>
Date: Sat Jun 26 13:19:00 2021 +0900
4th commit
diff --git a/First.java b/First.java
index 9335791..a728477 100644
--- a/First.java
+++ b/First.java
@@ -14,7 +14,7 @@ import tech.thdev.media_projection_library.R
internal class MediaProjectionAccessActivity : AppCompatActivity() {
companion object {
- private const val REQ_CODE_MEDIA_PROJECTION = 1000
+ private const val REQ_CODE_MEDIA_PROJECTION = 2000
$ git show 9f4586eaf107d84a5b99c6cc538c4006e6e01285
commit 9f4586eaf107d84a5b99c6cc538c4006e6e01285 (HEAD -> master)
Author: JS <farfs.dev@gmail.com>
Date: Sat Jun 26 13:20:17 2021 +0900
Revert "4th commit"
This reverts commit 971c858b160aebc1c6c47ae4713959d36d2e2a52.
diff --git a/First.java b/First.java
index a728477..9335791 100644
--- a/First.java
+++ b/First.java
@@ -14,7 +14,7 @@ import tech.thdev.media_projection_library.R
internal class MediaProjectionAccessActivity : AppCompatActivity() {
companion object {
- private const val REQ_CODE_MEDIA_PROJECTION = 2000
+ private const val REQ_CODE_MEDIA_PROJECTION = 1000
2. 複数のコミットをrevertする方法
複数のコミットをrevertするときは、 git revert [commit id] [commit id] ...
のように、複数のcommit idを引数として渡してください。
$ git revert 5551f38 10d7d0f
Removing Third.java
[master 2260375] Revert "5th commit"
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 Third.java
[master 7ce9b41] Revert "third commit"
1 file changed, 7 insertions(+)
ログを確認すると、revertされたコミットが適用されました。
$ git log
commit 7ce9b41b3f3c67025ba22eda75bccbdb094e754d (HEAD -> master)
Author: JS <farfs.dev@gmail.com>
Date: Sat Jun 26 13:31:12 2021 +0900
Revert "third commit"
This reverts commit 10d7d0f6f52539a4e7a1867449b7d6fa023a2685.
commit 226037540ee8afb4304c0a7a39ae42de3e20f710
Author: JS <farfs.dev@gmail.com>
Date: Sat Jun 26 13:31:10 2021 +0900
Revert "5th commit"
This reverts commit 5551f386aa1c22c26ea6aaf678e7cdbf2cded39b.
commit 9f4586eaf107d84a5b99c6cc538c4006e6e01285
Author: JS <farfs.dev@gmail.com>
Date: Sat Jun 26 13:20:17 2021 +0900
Revert "4th commit"
This reverts commit 971c858b160aebc1c6c47ae4713959d36d2e2a52.
commit 5551f386aa1c22c26ea6aaf678e7cdbf2cded39b
Author: JS <farfs.dev@gmail.com>
Date: Sat Jun 26 13:19:30 2021 +0900
5th commit
Related Posts
- git cloneコマンドでリモートリポジトリをローカルに保存する
- Git - 2つのコミットの違いを確認する(コードの違い、ファイルの違い)
- Git - ブランチ名を変更する方法
- Git - 特定のコミットを削除、元に戻す(reset、revert)
- Git - リモートブランチの作成と削除
- GitHubにssh-keyを登録する方法(Windows10)
- git log - 特定のauthorのcommitリストのみを出力する
- git log - commit リスト簡単に出力 (pretty)
- Git - revert 命令 (commit 元に戻す)
- git diffコマンドでファイルの変更を確認する
- git showコマンドでコミット情報を確認する
- Git - ブランチの作成、削除、チェックアウト
- Git - リモートリポジトリの追加、解除
- Git - Staging領域のファイルをUntrackedに変更する
- Git - commit logで修正されたファイルのリストを見る
- Git - 最後のコミットを修正、削除する方法(reset、amend命令)
- git commit message エディタの変更 (Vim, Sublime, Atom, VSCode)
- Git - blameコマンド、コードを修正した人とCommitを探す
- Git - Patchファイルの作成と適用