2

QA に合格した特定のストーリーのみをリリースする必要があります。ブランチにはアクセスできず、マスター ブランチにのみアクセスできます。

2 週間後に別のリリースがあるので、「行き止まり」のリリース ブランチを作成するだけで、最後のリリースの直前のコミットからこのブランチを開始し、マージ、リベース、またはチェリー ピックのコミットを行う必要があると考えていました。マスターから「リリースブランチ」に入れます。

だから私は2週間前にその時点からチェックアウトし、そこからブランチを作成しました. 今、私が興味を持っているものをすべて折り畳む必要があります。実際には、そうではありません。私は持っていないと思います。マスターで、古いコミットをチェックアウトしてから新しいブランチを作成しましたが、gitk で判読できない履歴を見ていませんか? (私はWindowsを使用しています)マスターの頭から枝を作ったと思います。

どんなアドバイスもありがたく受け取った。デリバティブの価格設定、ニュートン力学、ベクトル数学、ひも理論、私の妻など、これまでの人生で理解しなければならなかったどのトピックよりも Git は難しいと思うので、ゆっくり話してください。他のみんなもそうです。

ほとんどのチームが QA を満たさないストーリーを持っていることを考えると、これがかなり標準的なものであることを願っています。

4

2 に答える 2

7

masterブランチが現在次のようになっている場合:

A---B---C---D---E---F <--master

Cそして、 と だけで構成される新しいブランチを作成し、Eまで (および含む) までのすべてを作成すると仮定すると、A実行する必要があることの基本的な計画は次のとおりです。

git checkout -b newbranch A
git cherry-pick C E

これにより、次の状況が発生するはずです。

 A---B---C---D---E---F <--master
  \
   C'---E' <--newbranch

A..F元の 間の正確な依存関係に応じて、解決しmasterなければならない競合が発生する場合があります (たとえば、B何かを導入し、Cその何かを変更した場合、cherry-pickingCは変更したいものを見つけられません)。

于 2013-07-10T16:39:28.620 に答える
3

(チェリーピッキング以外の) 別のオプションは、インタラクティブなリベースを実行することです。

masterブランチが現在次のようになっていると仮定します。

A---B---C---D---E---F <--master

Candを使用して新しいブランチが必要ですE

git checkout -b newBranch F
git rebase -i A

お気に入りのエディターは、newBranchA(A は含まれていません) の間のすべてのコミットを表示して表示します。

pick B    Message for commit B
pick C    Message for commit C
pick D    Message for commit D
pick E    Message for commit E
pick F    Message for commit F

保持したくないコミットに対応する行、つまり B、D、F を削除します。保存して終了し、rebase コマンドにその仕事をさせます。そしてほら!

A---B---C---D---E---F <--master
  \
   C'---E' <--newbranch

twalberg が気づいたように、プロセス中に競合が発生する可能性があります。このような場合、rebase コマンドは問題ごとに一時停止し、解決するよう促します。これが完了したら、入力git rebase --continueして続行します。

于 2013-07-10T17:03:42.010 に答える