Subversion(TortoiseSVN)でコミットした内容を取り消して元に戻す(逆マージ)方法(手順)
Subversionを利用して、ファイルやフォルダをコミットしていくわけですが、
間違えてコミットしてしまって、
それを取り消して元に戻したくなることがあるかもしれません。
(ご注意)
このページをご利用になった結果の影響については、
一切責任を負いませんので、あらかじめご了承願います。
- コミットした内容を取り消す時は、ログメッセージ画面を利用します。
間違えてコミットしたファイル等を含むフォルダ
(複数フォルダにまたがる場合は、さらにその上位のフォルダ)を、
マウスを右ボタンでクリックして
コンテキストメニュー(右クリックメニュー)から、
[ログを表示]を選択してください。
- 履歴が一覧されますので、間違えてコミットしたリビジョンを
マウスの右ボタンで選択してください。
[Ctrl]キーを押しながら左ボタンを押して
複数のリビジョンを選択しておくこともできます。
選択できたら、
[このリビジョンにおける変更を元に戻す]を押してください
(複数選択した場合は「これらの‥‥」になります)。
- 今回の例ではリビジョン60で変更した内容を取り消して元に戻します。
注意しなければならないのは、もし、
[このリビジョンにおける変更を元に戻す]ではなく、
[このリビジョンに戻す]を選択した場合は、
「最新〜61」を取り消して、リビジョン60の状態になります。
つまり、
最新〜61を全部選択して[これらのリビジョンにおける変更を元に戻す]を選択することと、
60を選択して[このリビジョンに戻す]を選択することは同じになります。
操作を間違えないようにしてください。
- 元に戻す確認の画面を表示しますので、
[はい]を押してください。
- ここでのSubversionが動作は、
リビジョン60で変更した内容を
取り消すように現在のリビジョンへマージしています。
このように、追加するのではなく取り消すようにマージすることを、
逆マージといいます。
もし、リビジョン61以降で
リビジョン60と同じファイルの同じ場所を変更されている場合は、
コンフリクトが発生します。
もし、マージの途中でコンフリクトが発生した場合は解決させてください。
その場で解決しても、あとで解決しても、どちらでもよいです。
- 動作が完了したら、[OK]を押して画面を閉じてください。
- 実際にファイルが正しくなっていることを確認できたら、
忘れずにコミットしてください。
- もちろんですが、履歴には、
いったん間違えてコミットしてから、
あとから取り消したという内容が残ります。
間違えた内容は履歴に残したくないという気持ちは
理解できます(消し去ってしまいたいと思うことがあります)が、
それもあわせてきちんと残しておくというのがSubversionの考え方です。
履歴にさえ残っていればあとから何とでもすることが可能ですが、
逆に残さなかったばかりにたいへんなことになる場合もあります。
- 例えば、M社製のツールであれば、
間違えてコミットしたものは、
ファイル単位で履歴のうち最新のものを
以前のものに戻す(ロールバックする)ことができます。
さらに、かつては必要だったものでも現在必要のなくなったものは、
ファイル単位でリポジトリから
履歴ごと全部を完全に削除(パージ)することができます。
もし、後先のことを考えずに、これを実行してしまったらたいへんです。
後になってから、例えば1年前の状態でファイルを取ってきてコンパイルをしたい
という必要が出てこないとも限りません。
そんなときに、今は必要ないからという理由で
リポジトリから失ってしまったものは、
過去に必要だった時期のものを参照しようとしたときに
破綻を起こしてしまう結果となります。
shacho@critical.ne.jp
Last modified: Mon Oct 23 00:00:00 JST 2009