今回は、Gitを使っているときに間違えた変更を元に戻す方法についてお話しします。Gitには「リバート」と「リセット」という便利なコマンドがあります。それぞれの使い方と違いについて見ていきましょう。
リバート(revert)は、特定のコミットを取り消すためのコマンドです。ただし、単純に変更を消すのではなく、新しいコミットを作成して変更を取り消す点が特徴です。これにより、コミット履歴が保たれるので、他のチームメンバーと共同作業をしている場合でも安心です。
以下のコマンドを使ってリバートを行います:
git revert [コミットID]
例えば、コミットIDが "abc123" であれば、
git revert abc123
と入力してください。これにより、新しいコミットが作成されて、指定したコミットの変更が取り消されます。
リセット(reset)は、指定したコミット以前の状態に戻すためのコマンドです。このコマンドは、リポジトリの状態を過去の特定の地点に戻すので、注意が必要です。リセットには3つのオプションがあります:--soft、--mixed、--hardの3種類です。
--soft オプションを使うと、コミットを取り消しても、変更内容はステージングエリアに残ります。
git reset --soft [コミットID]
--mixed オプションでは、コミットを取り消し、変更内容はステージングエリアからも削除されますが、作業ディレクトリには残ります。
git reset --mixed [コミットID]
これは、デフォルトのオプションなので、--mixed
を省略しても動作します。
git reset [コミットID]
最後に、--hard オプションです。これを使うと、コミットを取り消して、変更内容も完全に消えてしまいます。注意して使ってください!
git reset --hard [コミットID]
リバートとリセットの違いは、基本的にコミット履歴にあります。リバートは新しいコミットを作成して元に戻すのに対し、リセットは過去のコミット自体を取り消します。チームで作業している場合は、リバートの方が安全です。
Gitには、間違った変更を元に戻すための便利なコマンドがあります。リバートは新しいコミットを作成して変更を取り消し、リセットは過去の特定のコミットに戻ります。それぞれの使い方をマスターすれば、より効率的にGitを使いこなせるようになります。