gitコマンドの使い方 ~ git revert ~
目次
git revert コマンド概要
git revertは特定のcommitの内容を取り消したい場合に、逆向きの変更を加えたcommitを作成するコマンドです。
commitを取り消すコマンドには他にgit resetコマンドがありますが、違い次の通りです。
コマンド | 特徴 |
---|---|
git revert | commitが作成されるため取り消した履歴が残る |
git reset | commitそのものが削除されるため履歴が残らない |
git revert コマンドの使い方
git revert [commit-hash]
取り消したいcommitのハッシュ値を指定して実行します。
例.以下の手順でrevertコマンドでcommitを取り消した場合です。
- file-A.txtに文字列「aaa」を入力しcommit①を作成
- file-A.txtに文字列「bbb」を追記しcommit②を作成
- revertコマンドでcommi①を取り消すcommit③を作成
commit①作成
(master)
$ echo 'aaa' > file-A.txt
(master)
$ git add -A
(master)
$ git commit -m '1st commit'
[master (root-commit) 27d9d33] 1st commit
1 file changed, 1 insertion(+)
create mode 100644 file-A.txt
commit②作成
(master)
$ echo 'bbb' >> file-A.txt
(master)
$ git add -A
(master)
$ git commit -m '2nd commit'
[master 5938f0a] 2nd commit
1 file changed, 1 insertion(+)
revertコマンドでcommit②を取り消し
(master)
$ git log --oneline
5938f0a (HEAD -> master) 2nd commit
27d9d33 1st commit
(master)
$ git revert 5938f0a
commitメッセージを入力する画面に切り替わる
Revert "2nd commit"
This reverts commit 5938f0a341945a4a28bf45dba4f44924c1ad1506.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Changes to be committed:
# modified: file-A.txt
#
commit②の内容が取り消しされているか確認
(master)
$ git log --oneline
4d6d662 (HEAD -> master) Revert "2nd commit"
5938f0a 2nd commit
27d9d33 1st commit
(master)
$ cat file-A.txt
aaa
取り消し用のcommit「Revert “2nd commit"」が作成されている
file-A.txtの内容を確認すると「aaa」の状態に戻りました。
git revert オプション
-e または –edit
git revert [commit-hash] --edit
revertのコミットメッセージを編集する場合に指定します。
デフォルトオプションですので、何もオプションを指定しない場合はこのオプションが有効になります。
–no-edit
git revert [commit-hash] --no-edit
revertのコミットメッセージを編集しない場合に指定します。
git revert の全てのオプションを確認する方法
以下のコマンドを実行するとブラウザでgit revertのヘルプページが表示される
git revert --help
Gitコマンドの使い方一覧
Git設定
ログ&設定値確認
ステージングエリアの操作
ローカルリポジトリの操作
commitのエイリアスなど
commitの内容をステージングエリアや作業ディレクトリに反映