<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>間違いを取り消す — Bazaar 2.6.0 ドキュメント</title> <link rel="stylesheet" href="../_static/default.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', VERSION: '2.6.0', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <script type="text/javascript" src="../_static/translations.js"></script> <link rel="shortcut icon" href="../_static/bzr.ico"/> <link rel="top" title="Bazaar 2.6.0 ドキュメント" href="../index.html" /> <link rel="up" title="Bazaarユーザーガイド" href="index.html" /> <link rel="next" title="他の人と連携する" href="partner_intro.html" /> <link rel="prev" title="プロジェクトをリリースする" href="releasing_a_project.html" /> </head> <body> <div class="related"> <h3>ナビゲーション</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="partner_intro.html" title="他の人と連携する" accesskey="N">次へ</a></li> <li class="right" > <a href="releasing_a_project.html" title="プロジェクトをリリースする" accesskey="P">前へ</a> |</li> <li><a href="../index.html">目次 (2.6.0)</a> »</li> <li><a href="index.html" accesskey="U">Bazaarユーザーガイド</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="id1"> <h1>間違いを取り消す<a class="headerlink" href="#id1" title="このヘッドラインへのパーマリンク">¶</a></h1> <div class="section" id="id2"> <h2>間違いは起きる<a class="headerlink" href="#id2" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>Bazaarは下記で説明されるような間違いから簡単にリカバーできるように 設計されています。</p> </div> <div class="section" id="id3"> <h2>プロジェクトのリビジョンの履歴をドロップする<a class="headerlink" href="#id3" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>思いがけず間違ったツリーをバージョン管理下に置いたとしても、 <tt class="docutils literal"><span class="pre">.bzr</span></tt> ディレクトリを削除するだけで済みます。</p> </div> <div class="section" id="id4"> <h2>ファイルもしくはディレクトリの登録を解除する<a class="headerlink" href="#id4" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>バージョン管理下に置きたくないファイルを思いがけず <tt class="docutils literal"><span class="pre">add</span></tt> コマンドで登録しても、 それを忘れるようにBazaarにそれを忘れさせるために <tt class="docutils literal"><span class="pre">remove</span></tt> コマンドを使用できます。</p> <p><tt class="docutils literal"><span class="pre">remove</span></tt> は修正されたファイルが削除されないよに <em>安全に物事を行う</em> ために設計されています。たとえば:</p> <div class="highlight-python"><div class="highlight"><pre>bzr add foo.html (oops - didn't mean that) bzr remove foo.html </pre></div> </div> <p>このコマンドは修正されたもしくは未知のファイルについてはエラーを出力します。 ファイルを維持したいのであれば、 <tt class="docutils literal"><span class="pre">--keep</span></tt> オプションを使います。 代わりに、ファイルを削除したいのであれば、 <tt class="docutils literal"><span class="pre">--force</span></tt> オプションを使います:</p> <div class="highlight-python"><div class="highlight"><pre>bzr add foo.html (oops - didn't mean that) bzr remove --keep foo.html (foo.html はディスクには残るけれども、bzrには登録されない) </pre></div> </div> <p>一方で、未変更の <tt class="docutils literal"><span class="pre">TODO</span></tt> ファイルは登録が解除されエラー出力なしでディスクから削除されます:</p> <div class="highlight-python"><div class="highlight"><pre>bzr add TODO bzr commit -m "added TODO" (hack, hack, hack - but don't change TODO) bzr remove TODO (TODO ファイルは削除される) </pre></div> </div> <p>注: IDEもしくはオペレーティングシステムのファイルマネージャーを利用してファイルを削除する場合、 <tt class="docutils literal"><span class="pre">commit</span></tt> コマンドはそれを削除されるものとして暗黙のうちに扱います。</p> </div> <div class="section" id="id5"> <h2>最後のコミット以降の変更を取り消す<a class="headerlink" href="#id5" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>バージョン管理ツールを使う理由の1つは作業をしている間にツリーのステータスを楽に調べられることです。 最新の <tt class="docutils literal"><span class="pre">commit</span></tt> 以降の変更を廃棄することを決心したら、使うコマンドは <tt class="docutils literal"><span class="pre">revert</span></tt> です:</p> <div class="highlight-python"><div class="highlight"><pre>bzr revert </pre></div> </div> <p>事前の警告として、 実際にすべてが本当に廃棄されたことを確認するために <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">status</span></tt> と <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">diff</span></tt> を最初に使うことはよい習慣です。</p> </div> <div class="section" id="id6"> <h2>最後のコミット以降のファイルへの変更を取り消す<a class="headerlink" href="#id6" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>最後のコミット以降の特定のファイルの変更を取り消したいが、ツリーの他のすべての変更を維持したい場合、 ファイルの名前を引数として <tt class="docutils literal"><span class="pre">revert</span></tt> に渡します:</p> <div class="highlight-python"><div class="highlight"><pre>bzr revert foo.py </pre></div> </div> </div> <div class="section" id="id7"> <h2>最後のコミットを取り消す<a class="headerlink" href="#id7" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>意図しないコミットをしてしまったら、取り消すために <tt class="docutils literal"><span class="pre">uncommit</span></tt> コマンドを使います:</p> <div class="highlight-python"><div class="highlight"><pre>bzr uncommit </pre></div> </div> <p><tt class="docutils literal"><span class="pre">revert</span></tt> とは異なり、 <tt class="docutils literal"><span class="pre">uncommit</span></tt> は作業のツリーの内容をそのままにします。 意図せずに間違ったエラーメッセージをコミットしてしまった場合、これは本当に重宝します:</p> <div class="highlight-python"><div class="highlight"><pre>bzr commit -m "Fix bug #11" (damn - wrong bug number) bzr uncommit bzr commit -m "Fix bug #1" </pre></div> </div> <p>コミットを取り消す別の理由は1つもしくは複数のファイルの追加を忘れたからというものです 。 これを避けるために、未知のファイルがツリーの中で見つかるとコミットがエラーになるように <tt class="docutils literal"><span class="pre">commit</span></tt> を <tt class="docutils literal"><span class="pre">commit</span> <span class="pre">--strict</span></tt> のエイリアスにする人もいます。</p> <p>注: <tt class="docutils literal"><span class="pre">merge</span></tt> コマンドは次の章まで紹介しませんが、 <tt class="docutils literal"><span class="pre">uncommit</span></tt> で追加するマージをリストアすることは無意味です。 (<tt class="docutils literal"><span class="pre">uncommit</span></tt> の後で <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">status</span></tt> を実行するとこれらが表示されます) <tt class="docutils literal"><span class="pre">merge</span></tt> は履歴の前の方の指定したコミットだけを効率良く取り消すためにも使われます。 <tt class="docutils literal"><span class="pre">merge</span></tt> に関する詳細な情報は 次の章の <a class="reference external" href="merging_changes.html">変更をマージする</a> とBazaarのユーザーリファレンスを参照してください。</p> </div> <div class="section" id="id9"> <h2>複数のコミットを取り消す<a class="headerlink" href="#id9" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>複数のコミットを取り消すためには -r オプションを使います:</p> <div class="highlight-python"><div class="highlight"><pre>bzr uncommit -r -3 </pre></div> </div> <p>これを行うための理由が本当にいくつかの変更を破棄したいのであるなら、 <tt class="docutils literal"><span class="pre">uncommit</span></tt> は作業ツリーを変更しないことを覚えておいてください: タスクを完了させることと同じようにおそらく <tt class="docutils literal"><span class="pre">revert</span></tt> コマンドを実行する必要があります。 しかし多くの場合、履歴をそのままにしておき、最新のよい状態の内容を反映する 新しいリビジョンを追加する方が間違いなくベターです。</p> </div> <div class="section" id="id10"> <h2>過去のバージョンの状態に戻す<a class="headerlink" href="#id10" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>望まない変更を行ったが、コードがユーザーに公開されているのでコミットの取り消しが合理的ではない場合、 作業ツリーを望む状態に戻すために <tt class="docutils literal"><span class="pre">revert</span></tt> を利用できます:</p> <div class="highlight-python"><div class="highlight"><pre>% bzr commit "Fix bug #5" Committed revision 20. (release the code) (hmm - bad fix) bzr revert -r 19 bzr commit -m "Backout fix for bug #5" </pre></div> </div> <p>この作業によってツリー全体をリビジョン19の状態に変更します。 それ以降は新しいコミットをしていなければ、おそらくこれがあなたのしたい唯一のことです。 新しいコミットをしている場合は、 <tt class="docutils literal"><span class="pre">revert</span></tt> はそれも消してしまいます。 その場合は、わるい修正を取り消す代わりに <a class="reference external" href="adv_merging.html#reverse-cherrypicking">リバースチェリーピック</a> を使う方がよいでしょう。</p> <p>注: 19のような絶対的なリビジョン番号の代わりに、 負の数を使ってチップ(-1)と相対的なリビジョンを指定できます:</p> <div class="highlight-python"><div class="highlight"><pre>bzr revert -r -2 </pre></div> </div> </div> <div class="section" id="id12"> <h2>タグを訂正する<a class="headerlink" href="#id12" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>早まってタグを定義したのなら、 <tt class="docutils literal"><span class="pre">tag</span></tt> コマンドの <tt class="docutils literal"><span class="pre">--force</span></tt> オプションを使って再定義します:</p> <div class="highlight-python"><div class="highlight"><pre>bzr tag 2.0-beta-1 (oops, we're not yet ready for that) (make more commits to include more fixes) bzr tag 2.0-beta-1 --force </pre></div> </div> </div> <div class="section" id="id13"> <h2>タグをクリアする<a class="headerlink" href="#id13" title="このヘッドラインへのパーマリンク">¶</a></h2> <p>タグを定義したが使いたくないのであれば、削除するために、 <tt class="docutils literal"><span class="pre">tag</span></tt> コマンドの <tt class="docutils literal"><span class="pre">--delete</span></tt> オプションを使うことができます:</p> <div class="highlight-python"><div class="highlight"><pre>bzr tag 2.0-beta-4 (oops, we're not releasing a 4th beta) bzr tag 2.0-beta-4 --delete </pre></div> </div> </div> </div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h3><a href="../index.html">目次</a></h3> <ul> <li><a class="reference internal" href="#">間違いを取り消す</a><ul> <li><a class="reference internal" href="#id2">間違いは起きる</a></li> <li><a class="reference internal" href="#id3">プロジェクトのリビジョンの履歴をドロップする</a></li> <li><a class="reference internal" href="#id4">ファイルもしくはディレクトリの登録を解除する</a></li> <li><a class="reference internal" href="#id5">最後のコミット以降の変更を取り消す</a></li> <li><a class="reference internal" href="#id6">最後のコミット以降のファイルへの変更を取り消す</a></li> <li><a class="reference internal" href="#id7">最後のコミットを取り消す</a></li> <li><a class="reference internal" href="#id9">複数のコミットを取り消す</a></li> <li><a class="reference internal" href="#id10">過去のバージョンの状態に戻す</a></li> <li><a class="reference internal" href="#id12">タグを訂正する</a></li> <li><a class="reference internal" href="#id13">タグをクリアする</a></li> </ul> </li> </ul> <h4>前のトピックへ</h4> <p class="topless"><a href="releasing_a_project.html" title="前の章へ">プロジェクトをリリースする</a></p> <h4>次のトピックへ</h4> <p class="topless"><a href="partner_intro.html" title="次の章へ">他の人と連携する</a></p> <h3>このページ</h3> <ul class="this-page-menu"> <li><a href="../_sources/user-guide/undoing_mistakes.txt" rel="nofollow">ソースコードを表示</a></li> </ul> <div id="searchbox" style="display: none"> <h3>クイック検索</h3> <form class="search" action="../search.html" method="get"> <input type="text" name="q" /> <input type="submit" value="検索" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> <p class="searchtip" style="font-size: 90%"> モジュール、クラス、または関数名を入力してください </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related"> <h3>ナビゲーション</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="partner_intro.html" title="他の人と連携する" >次へ</a></li> <li class="right" > <a href="releasing_a_project.html" title="プロジェクトをリリースする" >前へ</a> |</li> <li><a href="../index.html">目次 (2.6.0)</a> »</li> <li><a href="index.html" >Bazaarユーザーガイド</a> »</li> </ul> </div> <div class="footer"> © Copyright 2009-2011 Canonical Ltd. このドキュメントは <a href="http://sphinx-doc.org/">Sphinx</a> 1.2.3 で生成しました。 </div> </body> </html>