0

誤って以前のリビジョンに更新し、そこからデフォルト ブランチでコミットしたため、デフォルト ブランチで 2 つのヘッドが発生しました。ヘッドの 1 つを別のブランチに移動したい。私が移動したいこの頭は、数回前に取引されました。強制的にプッシュせずに他のヘッドをサーバーにプッシュできるように、それが含まれているブランチを変更するにはどうすればよいですか?

これまでのところ、サーバーに何もプッシュしていません。結局のところ、必要なファイルをコピーして、リポジトリを再クローンできます。

4

2 に答える 2

0

リベース拡張機能を使用して履歴を書き換えることができます。すでにインストールされているので、有効にする必要があります(tortoiseHGの[ファイル]>[設定]>[拡張機能]から)。tortoiseHGの内部では、リビジョンを右クリックして[履歴の変更]に移動し、[リベース]を選択すると見つけることができます。ただし、より詳細に制御するには、コマンドラインにドロップすることをお勧めします。

wデフォルトのブランチから新しいヘッドであるリビジョンがあるとしましょう。(wそれに沿って移動する子孫がある場合があります)。

-o-o-o-o
    \
     w

bその親は、別のブランチ(図には示されていません)のリビジョンである必要があります。入力するだけです:

hg rebase --source w --dest b --detach

それでおしまい!新しい親がになるように、リベースwし、そのすべての子孫(存在する場合)をリベースしbます。bを追加しない限り、と同じブランチ名に割り当てられます--keepbranches。このフラグ--detachにより​​、状況によっては複雑なトポロジになってしまうことがなくなります。

于 2012-10-31T20:50:44.053 に答える
0
  1. リベース
  2. グラフト(新しい場所に移動)+履歴(古いチェンジセットを削除)
  3. MQ、知っている場合(csetをMQ-patchに変換し、新しい親、qpop、qfinishに更新)
于 2012-10-31T20:53:23.897 に答える