これはあなたが求めていることをするはずです:
git checkout $DESTINATION # assuming here that that's a branch name, not a hash
git cherry-pick $IMPORT_BEGIN..$IMPORT_END
$IMPORT_BEGINチェリーピックしたい最初のコミットに名前を付ける場合は、${IMPORT_BEGIN}~1代わりに使用する必要があることに注意してください-他の多くのgitコマンドと同様にcherry-pick、範囲を解釈して、「<begin>..<end>以降のすべてのコミット」を意味します。<begin><end>
事前にブランチをチェックアウトすると (ハッシュによるチェックアウトではなく、切り離されたヘッドになります)、cherry-pick自動的にブランチ ヘッドが進みます。
編集:これrebaseを行うために使用するために、複製したいコミットがという名前のブランチにあると仮定しましょうdevel(つまり、$IMPORT_END=develハッシュではありません-ブランチの代わりにハッシュを使用すると、ヘッドが切り離されてしまいます)、そしてこれらのコミットを に移動しますmaster。その場合、これを行うことができます:
git checkout devel
git rebase --onto master $IMPORT_BEGIN..$IMPORT_END
それはコミットをコピーしますが、masterブランチを の新しいバージョンに進めません$IMPORT_END。これは、希望する最終状態のようです。それを達成するには、上記に従って次のことを行う必要があります。
git checkout master
git merge --ff-only devel
develrebase新しいコミットを指すようにによって更新され、は同じ場所mergeを指すようになります。master