2

別のブランチにあるバージョンがあるとしましょう。

  • 主人
  • v1
  • v2

SVN を使用したワークフローでは、マスターでバグを修正してから v1 と v2 にマージしました。新しい機能は、次のバージョン (v3) が作成されるまで待つ必要があります。

これは、SVN から GIT への変換後の外観です。

                      ---v2----v2----v2
                     /
M----M----M----M----M----M----M----M----M----M
\
 v1----v1----v1----v1---v1---v1

M はマスター、v1 と v2 はバージョン ブランチです。

ここで、誰かがコミット "c" と "c1" を master にプッシュするとします。

                      ---v2----v2----v2                c1---c1---c1
                     /                                /            \
M----M----M----M----M----M----M----M----M----M---c---c---c---c---c--c
\
 v1----v1----v1----v1---v1---v1

「c」および「c1」コミットを含むブランチの一部をどのように v1 にコピーしますか?

期待される結果:

                      ---v2----v2----v2                c1---c1---c1
                     /                                /            \
M----M----M----M----M----M----M----M----M----M---c---c---c---c---c--c
\                                        c1---c1---c1
 \                                      /            \
  v1----v1----v1----v1---v1---v1---c---c---c---c---c--c

チェリーピックを使用すると、単一のコミットを選択して、いつでも再適用できることがわかりました。リベースは私が望むことをしていると思いますが、リベースの引数に迷っています。

これは私がそれがうまくいくと思う方法です:

  • すべてをローカル リポジトリにプルする

  • c+c1 コミットを v1 または v2 にリベースします

  • 「中央」リポジトリにプッシュします

また、私たちにとってうまくいく別のワークフローの代替案があれば、私は本当に提案を受け入れます.

4

1 に答える 1

2

期待される結果を受け取る最も簡単な方法は次のとおりですgit cherry-pickgit format-patch

# cherry-pick example
git checkout v1
git cherry-pick c
git cherry-pick c1
...

# patch example
git checkout master
git format-patch HEAD~3
git checkout v1 && git am *.patch

リベースを使用すると、次のような結果が得られません。

                      ---v2----v2----v2                c1---c1---c1
                     /                                /            \
M----M----M----M----M----M----M----M----M----M---c---c---c---c---c--c
^                                                                    \
your current v1 base                                                  \
                                                                       v1----v1----v1----v1---v1---v1
                                                                    ^
                                                                    v1 base after rebase
于 2013-11-07T11:00:22.387 に答える