0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

新人エンジニアが初めて”revert”したのでメモ

Last updated at Posted at 2023-12-20

revertとは

git revertは、任意のコミットを取り消すときに使えるコマンドです。例えば、新しい機能を導入した際に深刻なバグが発見されたときや、誤って間違ったブランチをマージしてしまったときに、そのコミットを取り消すことができます。

git revertの仕組み

git revertコマンドは、指定したコミットによって導入された変更を打ち消すための新たなコミットを作成します。これにより、元のコミット自体は変更されず履歴に残り続けます。

具体的には、

$ git revert commitID

を実行すると、指定されたコミットIDによる変更を解析し、それを打ち消すための新しいコミットを作成します。この新しいコミットは、現在のブランチに自動的に反映されます。

revertの方法

GitHub上から

既にマージされたコミットは、該当するPRのページから、revertボタンをクリックすると実行されます。

通常のコミットは、Pull Request → commits → view commit details→revertボタンをクリックで実行されます。しかし、後者のrevertボタンは、全てのリポジトリで有効になっているわけではなく、適切なアクセス権が必要になるようです。

コマンドで

$ git revert commitID
で実行することができます。

commitIDの探し方

GitHub上から

GitHub上で、Pull Request → commits → view commit detailsから確認することができます。

コマンドで

$ git log
過去のコミットを遡ることができます。commitの横に表示される40桁の16進数がcommitIDです。

ログはqで閉じることができます。

こちらのコマンドは、1つのコミットにつき6行ほどにわたって情報が表示されるので、長い履歴を持つプロジェクトにおいては少し読みづらいです。そこで便利なのが、以下のコマンドです。

$ git log --oneline
上記のコマンドでは、1つのコミットにつき、文字通りoneline、つまり1行で履歴を表示してくれます。このコマンドで表示されるcommit IDは、通常40桁で表示されるIDの先頭7~10桁を取り出す形で短縮されたものですが、こちらのIDもrevertコマンドで使うことができます。

注意点

①revertしたいコミットをマージした後に、別ブランチからの変更が加わっていると、ブラウザから手動でコンフリクトを解決する必要が生じます。

②gitには、revert以外にもgit resetgit checkoutなど、変更を取り消すときに使えるコマンドが用意されています。必要に応じて、使い分ける必要がありそうです。(3つの違いは後日まとめてみます)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?