こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在5社経験している、14年目エンジニアです。
この記事では、 Gitで過去のコミットを取り消すことができるgit revertコマンドについて解説していきます。
前提:実行環境
実行環境は以下の通りです。
OS | Windows11 |
---|---|
Gitのバージョン | 2.45.2 |
過去のコミットを取り消すことができるgit revertコマンドを解説
過去のコミットを取り消すことができるgit revertコマンドを解説します。
git revertコマンドは、コミットを完全削除するのではありません。
コミットを打ち消すためのコミットを作成します。
なので、履歴には残ります。
git revertコマンドを実行しても、即座にリモートブランチに影響はありません。
もしリモートブランチにも反映したい場合、git pushする必要があります。
では、実際に使ってみます。
- コマンドプロンプト
- PowerShell
- Git Bash
のいずれかをを開きます。
(この記事では、コマンドプロンプトで解説を進めます)
そして、ブランチがある場所まで移動します。
実行するためのコマンドは
1 |
git revert 【コミットID】 |
です。
コミットIDは、git logコマンドで確認することができます。
git logコマンドについては、こちらの記事をご参考ください。
では、git logコマンドでコミットIDを確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
commit 8bfc3368afcaf0a1703cb0c55fa6748e75c504dc (HEAD -> main, origin/main, origin/HEAD) Author: ○○○○ <△△△△△△△△△@users.noreply.github.com> Date: Tue May 6 20:10:59 2025 +0900 'revert_practice' commit 61fd6d9d6f21c189da9b4f5dbdd21e18165ccf46 Author: ○○○○ <△△△△△△△△△@users.noreply.github.com> Date: Tue May 6 19:46:51 2025 +0900 Revert "'test'" This reverts commit 04691be5321fca74eb506c5030ed045b441d28f5. commit 04691be5321fca74eb506c5030ed045b441d28f5 Author: ○○○○ <△△△△△△△△△@users.noreply.github.com> Date: Tue May 6 19:46:01 2025 +0900 'test' (後略) |
コミットID「8bfc3368afcaf0a1703cb0c55fa6748e75c504dc」をrevertします。
実行前にコミットID「8bfc3368afcaf0a1703cb0c55fa6748e75c504dc」はどんな修正が入っているのかを確認しておきます。
git diffコマンドを使ってコミット前後を確認します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
git diff 61fd6d9d6f21c189da9b4f5dbdd21e18165ccf46 8bfc3368afcaf0a1703cb0c55fa6748e75c504dc diff --git a/aaa.txt b/aaa.txt index 1b59b98..903635d 100644 --- a/aaa.txt +++ b/aaa.txt @@ -1,3 +1,5 @@ aaaaa bbbbb -ccccc \ No newline at end of file +ccccc +ddddd +eeeee \ No newline at end of file diff --git a/sample.txt b/sample.txt index 5209e21..4169f73 100644 --- a/sample.txt +++ b/sample.txt @@ -2,4 +2,6 @@ かきくけこ さしすせそ たちつてと -なにぬねの \ No newline at end of file +なにぬねの +はひふへほ +まみむめも \ No newline at end of file |
「aaa.txt」と「sample.txt」に修正が入っていることが確認できました。
なので今回で言うと、git revertを実行した場合、これらの修正が取り消されたコミットが作成されます。
git diffコマンドで特定のコミット間で変更または削除した行数を確認するやり方については、こちらの記事をご参考ください。
では、revertします。
コマンドは
1 |
git revert 8bfc3368afcaf0a1703cb0c55fa6748e75c504dc |
になります。
実行すると
1 2 |
[main fbdeb55] Revert "'revert_practice'" 2 files changed, 2 insertions(+), 6 deletions(-) |
コミットを打ち消すためのコミットが作成されました。
「aaa.txt」と「sample.txt」を確認してみます。
コミットID「8bfc3368afcaf0a1703cb0c55fa6748e75c504dc」で行われた修正が取り消しされていることが確認できました。
- aaa.txt
- sample.txt
git logでも確認してみると
1 2 3 4 5 6 7 |
commit fbdeb5559d38b48c1c60aa45c0dc7034759f3cc0 (HEAD -> main) Author: ○○○○ <△△△△△△△△△@users.noreply.github.com> Date: Tue May 6 20:30:03 2025 +0900 Revert "'revert_practice'" This reverts commit 8bfc3368afcaf0a1703cb0c55fa6748e75c504dc. |
取り消すためのコミットが作成されていることが確認できました。
まとめ:過去のコミットを取り消してみよう
以上がGitで過去のコミットを取り消すことができるgit revertコマンドの解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント