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