0

私は最近、CVS/SVN から Git に切り替えましたが、今のところ楽しんでいます。しかし、最近の開発サイクルでは、開発ブランチを作成する前にマスター ブランチを作成するという重要なステップを忘れていました。

私の通常のサイクルでは、トランク (安定コード) と、メンテナンス リリースを実行するメンテナンス ブランチがあります。そのメンテナンス ブランチ内に、個々のバグ用の開発ブランチがあります。

通常、メンテナンス ブランチは私のバージョンに従います。したがって、トランクにはメジャー バージョン (つまり、バージョン 1、バージョン 2、バージョン 3) があります。次に、メンテナンス ブランチ (例: 1.1、2.1、2.2 など)。次に、メンテナンス ブランチ内で、このリリースの dev ブランチ (つまり、1.2.1、2.1.3 など)。

前回のサイクルでは、2.2.1 に取り組んでいました。私の最後のリリースは 2.1.8 でした。最初に 2.2 ブランチを作成するのではなく、誤って 2.1 ブランチからブランチを作成してしまいました。ここで、変更を元にマージしたい場合、元にマージする 2.2 ブランチがありません。

私が "すべき" ことは、2.1 ブランチをトランク (v2) にマージしてから、トランクから 2.2 をブランチし、2.2 ブランチから 2.2.1 をブランチすることでした。

2.2 ブランチがなく、2.2.1 ブランチが誤って 2.1 から外れてしまったので、どうすれば自分を救うことができますか?

2.2.1 ではすでに多くの開発作業が行われています。

|-1.0
|-2.0
   |-2.1
      |-2.1.1
      |-2.1.2
      |-....
      |-2.1.8
      |-2.2.1        <---- wrong place!!!

になるはずだった:

|-1.0
|-2.0
   |-2.1
      |-2.1.1
      |-2.1.2
      |-....
      |-2.1.8
   |-2.2
      |-2.2.1       

ありがとう、

エリック

4

1 に答える 1

1

まず、git ではいつでも後で変更したり移動したりできます。慌てないでください。最初に、ディレクトリ全体のコピーを作成して、メイン コピーでテストを実行する前に、「念のため」別のコピーでテストを実行します。少し安心感が得られます。

あなたがする必要があるのは:

1) 必要な場所に 2.2 ブランチを作成します。IE、どこから分岐する必要git checkout v2.1があるかを確認してください(私が思うようなものですが、説明からはわかりにくいです)。次に、 のようなものでそこに 2.2 ブランチを作成しますgit checkout -b v2.2

2) 次に、2.2.1 ブランチを v2.2 ブランチに移動する必要があります。git rebaseこれは、機能的にツリーのある場所から別の場所にブランチを移動する を使用すると、実際にはかなり簡単に実行できます。これを行うには、v2.2.1 ブランチで行われた変更を新しい v2.2 ブランチに移動しますgit checkout v2.2.1git rebase v2.2

于 2013-02-13T17:59:21.990 に答える