コマンドのチートシートは次のとおりです。
hg update
作業コピーの親リビジョンを変更し、この新しい親リビジョンに一致するようにファイルの内容も変更します。つまり、更新したリビジョンから新しいコミットが引き継がれます。
hg revert
ファイルの内容のみを変更し、作業コピーの親リビジョンのみを残します。通常はhg revert
、ファイルに加えたコミットされていない変更を作業コピーに残したくない場合に使用します。
hg branch
新しい名前付きブランチを開始します。名前付きブランチは、チェンジセットに割り当てるラベルと考えてください。したがって、を実行するhg branch red
と、次のチェンジセットは「赤い」ブランチに属するものとしてマークされます。これは、特に異なる人々が異なるブランチで作業していて、後でチェンジセットの発生元を確認したい場合に、チェンジセットを整理するための良い方法です。しかし、あなたはあなたの状況でそれを使いたくないのです。
を使用するhg update --rev 38
場合、チェンジセット39〜45は行き止まり、つまり、ぶら下がりヘッドと呼ばれます。プッシュするリポジトリに「複数のヘッド」を作成するため、プッシュすると警告が表示されます。誰かがマージを行う必要があることを示唆しているので、そのような頭を残しておくのは一種の失礼なので、警告はそこにあります。しかし、あなたの場合、あなたは単に先に進むことができます、そしてhg push --force
あなたは本当にそれをぶら下げたままにしたいので。
リビジョン39-45をまだどこかにプッシュしていない場合は、非公開にしておくことができます。これは非常に簡単です。hg clone --rev 38 foo foo-38
リビジョン38までしか含まれていない新しいローカルクローンを取得foo-38
できます。作業を続け、作成した新しい(適切な)チェンジセットをプッシュできます。foo
クローンには古い(悪い)リビジョンが残っています。(クローンの名前は自由に変更できます。たとえば、foo
to foo-bad
やfoo-38
to foo
など)。
最後に、使用hg revert --all --rev 38
してコミットすることもできます。これにより、リビジョン38と同じように見えるリビジョン46が作成されます。その後、リビジョン46から作業を続けます。これにより、履歴と同じように明示的な方法でフォークが作成されることhg update
はありませんが、一方で、複数の頭。hg revert
すでにリビジョン45に基づいて自分で作業を行っている他の人と共同作業をしている場合に使用します。それ以外の場合は、hg update
より明確です。