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

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

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

    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:ミスったときのリビジョン番号 .

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

    【ご案内】各種イベントはこちら

    アピリッツでは、定期的に勉強会やセミナー等、各種イベントを企画・運営しています。各イベントの詳細と参加申し込みは以下リンクからご確認ください。皆様にお会いできることを楽しみにしております。

    各種イベントのお申込みはこちら

    過去のイベントの様子はこちら

    アピリッツについて