2016-03-29 20 views
0

git rebase --ontoを使用して、ブランチから別のブランチにコミットを選択しています。シンプルさから、リリースブランチへのブランチの開発を考えてみましょう。私はリリースに発展するから「文字」リビジョンのすべてをマージする必要が上記のうち複数のリビジョンセットを持つGit rebaseに

1----A----B----C----D----2----3----E----F---G----H----4----5----6 develop 

、私が数値の修正を無視する必要があることに注意することが重要です。

私たちは、グループごとにリベースを実行します。上記の例では2グループ、D及びEにG.

git rebase --onto release 1 D #rebase the first range of revisions from the develop branch and base it on the release branch 

git rebase --onto release 3 H #rebase the second range of revisions from the develop branch and base it on the release branch. 

問題は、各グループのために、我々は便利ではない、このコマンドを実行する必要があるにAがあります。

は、私がかつてgit rebase --ontoを実行し、1つのコマンドで、その後

+0

に与えられた範囲をマージしますと、あなたは、できるだけ多くの範囲を渡すことができますあなたがここにいるのはちょっと不便です。最も簡単なのはインタラクティブなリベースで、不要なものを削除することができます。 – jthill

+0

実際、 'git rebase -i --onto release 1'だけで、シェルではなくEDITORでやっても構いません。 – amalloy

+0

Rebaseはあるブランチから別のブランチへの良い( "チェリー")コミットを選ぶための間違ったツールです。 'git cherry-pick'コマンドは正確にそれを行います:あなたが選ぶべきチェリーを特定し、それらを選択(コピー)します。 – torek

答えて

3

を必要なすべてのリビジョンを指定することができますどのような方法があり、私は一度--ontoリベースと必要なすべてを指定するにgitを実行できる方法はあります1つのコマンドで改訂します

代わりにgit cherry-pickを使用することをお勧めします。
commit rangecherry-pickを使用して、

# set the range of commits you are interested in 
# A should be older than B. 
cherry-pick A..D E...H 

を望むそしてそれは何、これを実行する方法はたくさんありますあなたの現在のブランチ

関連する問題