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