ホーム DoRuby 【SVN】コミットをミスった、とすぐに気づいた時の戻し方と正しいコミットをするまでです【CUI】
【SVN】コミットをミスった、とすぐに気づいた時の戻し方と正しいコミットをするまでです【CUI】
 

【SVN】コミットをミスった、とすぐに気づいた時の戻し方と正しいコミットをするまでです【CUI】

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

svnではコミットをなかったことにすることはできません。 コミットする前のリポジトリをローカル持ってきて再度コミットします。 そうすれば履歴は残りますが、リポジトリの最新の状態はミスる前に戻ります。

svnではコミットをなかったことにすることはできません。
なのでコミットする前のリポジトリをローカルに持ってきて再度コミットします。
そうすれば履歴は残りますがリポジトリはミスる前に戻ります。

ローカルのソースはミスった時のリビジョン番号から持ってきます。
それをまたコミットすればいいですね(ミスり方にもよりますが)。

では手順です。

1. リポジトリを最新にします。

svn up

のちにローカルをマージするときのために最新にします。

2. リビジョン番号を確認します。
リポジトリが正しかった時のリビジョン番号を調べます。

svn log

ここではリビジョン番号が100だったとします。

3. 正しかったときのリビジョンにローカルを戻します。

svn merge -r HEAD:100 .

ローカルのファイルが変更されます。
-r HEAD:100でリビジョンを指定しています。HEADはリポジトリで最新のリビジョンを表します。
.はマージ元です。
ローカルのソースが過去のリビジョンに戻りました。

4. 再度コミットします。

svn commit -m “コミットをミスったので過去の状態を再度コミットします。”

これでリポジトリは元に戻りました。
最新のリビジョンが正常だとちょっとほっとしますね。

5. 最後にミスったときのリビジョンからローカルのソースを戻します。

svn merge -r HEAD:ミスったときのリビジョン番号 .

これで、リポジトリとローカルが元に戻りました。

記事を共有

最近人気な記事