~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/ja/user-guide/undoing_mistakes.txt

(vila) Fix test failures blocking package builds. (Vincent Ladeuil)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
間違いを取り消す
 
2
================
 
3
 
 
4
間違いは起きる
 
5
---------------
 
6
 
 
7
Bazaarは下記で説明されるような間違いから簡単にリカバーできるように
 
8
設計されています。
 
9
 
 
10
プロジェクトのリビジョンの履歴をドロップする
 
11
---------------------------------------------
 
12
 
 
13
思いがけず間違ったツリーをバージョン管理下に置いたとしても、 ``.bzr`` ディレクトリを削除するだけで済みます。
 
14
 
 
15
ファイルもしくはディレクトリの登録を解除する
 
16
---------------------------------------------
 
17
 
 
18
バージョン管理下に置きたくないファイルを思いがけず ``add`` コマンドで登録しても、
 
19
それを忘れるようにBazaarにそれを忘れさせるために ``remove`` コマンドを使用できます。
 
20
 
 
21
``remove`` は修正されたファイルが削除されないよに *安全に物事を行う* ために設計されています。たとえば::
 
22
 
 
23
  bzr add foo.html
 
24
  (oops - didn't mean that)
 
25
  bzr remove foo.html
 
26
 
 
27
このコマンドは修正されたもしくは未知のファイルについてはエラーを出力します。
 
28
ファイルを維持したいのであれば、 ``--keep`` オプションを使います。
 
29
代わりに、ファイルを削除したいのであれば、 ``--force`` オプションを使います::
 
30
 
 
31
  bzr add foo.html
 
32
  (oops - didn't mean that)
 
33
  bzr remove --keep foo.html
 
34
  (foo.html はディスクには残るけれども、bzrには登録されない)
 
35
 
 
36
一方で、未変更の ``TODO`` ファイルは登録が解除されエラー出力なしでディスクから削除されます::
 
37
 
 
38
  bzr add TODO
 
39
  bzr commit -m "added TODO"
 
40
  (hack, hack, hack - but don't change TODO)
 
41
  bzr remove TODO
 
42
  (TODO ファイルは削除される)
 
43
 
 
44
注: IDEもしくはオペレーティングシステムのファイルマネージャーを\
 
45
利用してファイルを削除する場合、 ``commit`` コマンドはそれを削除\
 
46
されるものとして暗黙のうちに扱います。
 
47
 
 
48
最後のコミット以降の変更を取り消す
 
49
----------------------------------
 
50
 
 
51
バージョン管理ツールを使う理由の1つは作業をしている間にツリーのステータスを楽に調べられることです。
 
52
最新の ``commit`` 以降の変更を廃棄することを決心したら、使うコマンドは ``revert`` です::
 
53
 
 
54
  bzr revert
 
55
 
 
56
事前の警告として、 実際にすべてが本当に廃棄されたことを確認するために
 
57
``bzr status`` と ``bzr diff`` を最初に使うことはよい習慣です。
 
58
 
 
59
最後のコミット以降のファイルへの変更を取り消す
 
60
-----------------------------------------------
 
61
 
 
62
最後のコミット以降の特定のファイルの変更を取り消したいが、ツリーの他のすべての変更を維持したい場合、
 
63
ファイルの名前を引数として ``revert`` に渡します::
 
64
 
 
65
  bzr revert foo.py
 
66
 
 
67
最後のコミットを取り消す
 
68
-------------------------
 
69
 
 
70
意図しないコミットをしてしまったら、取り消すために ``uncommit`` コマンドを使います::
 
71
 
 
72
  bzr uncommit
 
73
 
 
74
``revert`` とは異なり、 ``uncommit`` は作業のツリーの内容をそのままにします。
 
75
意図せずに間違ったエラーメッセージをコミットしてしまった場合、これは本当に重宝します::
 
76
 
 
77
  bzr commit -m "Fix bug #11"
 
78
  (damn - wrong bug number)
 
79
  bzr uncommit
 
80
  bzr commit -m "Fix bug #1"
 
81
 
 
82
コミットを取り消す別の理由は1つもしくは複数のファイルの追加を忘れたからというものです 。
 
83
これを避けるために、未知のファイルがツリーの中で見つかるとコミットがエラーになるように
 
84
``commit`` を ``commit --strict`` のエイリアスにする人もいます。
 
85
 
 
86
注: ``merge`` コマンドは次の章まで紹介しませんが、
 
87
``uncommit`` で追加するマージをリストアすることは無意味です。
 
88
(``uncommit`` の後で ``bzr status`` を実行するとこれらが表示されます)
 
89
``merge`` は履歴の前の方の指定したコミットだけを効率良く取り消すためにも使われます。
 
90
``merge`` に関する詳細な情報は
 
91
次の章の `変更をマージする <merging_changes.html>`_
 
92
とBazaarのユーザーリファレンスを参照してください。
 
93
 
 
94
複数のコミットを取り消す
 
95
------------------------
 
96
 
 
97
複数のコミットを取り消すためには -r オプションを使います::
 
98
 
 
99
  bzr uncommit -r -3
 
100
 
 
101
これを行うための理由が本当にいくつかの変更を破棄したいのであるなら、
 
102
``uncommit`` は作業ツリーを変更しないことを覚えておいてください:
 
103
タスクを完了させることと同じようにおそらく ``revert`` コマンドを実行する必要があります。
 
104
しかし多くの場合、履歴をそのままにしておき、最新のよい状態の内容を反映する
 
105
新しいリビジョンを追加する方が間違いなくベターです。
 
106
 
 
107
過去のバージョンの状態に戻す
 
108
-----------------------------
 
109
 
 
110
望まない変更を行ったが、コードがユーザーに公開されているのでコミットの取り消しが合理的ではない場合、
 
111
作業ツリーを望む状態に戻すために ``revert`` を利用できます::
 
112
 
 
113
  % bzr commit "Fix bug #5"
 
114
  Committed revision 20.
 
115
  (release the code)
 
116
  (hmm - bad fix)
 
117
  bzr revert -r 19
 
118
  bzr commit -m "Backout fix for bug #5"
 
119
 
 
120
この作業によってツリー全体をリビジョン19の状態に変更します。
 
121
それ以降は新しいコミットをしていなければ、おそらくこれがあなたのしたい唯一のことです。
 
122
新しいコミットをしている場合は、 ``revert`` はそれも消してしまいます。
 
123
その場合は、わるい修正を取り消す代わりに
 
124
`リバースチェリーピック <adv_merging.html#reverse-cherrypicking>`_
 
125
を使う方がよいでしょう。
 
126
 
 
127
注: 19のような絶対的なリビジョン番号の代わりに、
 
128
負の数を使ってチップ(-1)と相対的なリビジョンを指定できます::
 
129
 
 
130
  bzr revert -r -2
 
131
 
 
132
タグを訂正する
 
133
----------------
 
134
 
 
135
早まってタグを定義したのなら、
 
136
``tag`` コマンドの ``--force`` オプションを使って再定義します::
 
137
 
 
138
  bzr tag 2.0-beta-1
 
139
  (oops, we're not yet ready for that)
 
140
  (make more commits to include more fixes)
 
141
  bzr tag 2.0-beta-1 --force
 
142
 
 
143
タグをクリアする
 
144
-----------------
 
145
 
 
146
タグを定義したが使いたくないのであれば、削除するために、
 
147
``tag`` コマンドの ``--delete`` オプションを使うことができます::
 
148
 
 
149
  bzr tag 2.0-beta-4
 
150
  (oops, we're not releasing a 4th beta)
 
151
  bzr tag 2.0-beta-4 --delete
 
152