2017-03-29 26 views
2

チェリーを1つのブランチから別のブランチにコミットした後も、後でプルリクエストが作成されるとコミットが表示されます。Git cherry pickは重複したコミットを作成します

たとえば、Dev、Releaseの2つのブランチを持つgitプロジェクトがあります。

コミットの履歴は、次の順序です。

DEV:A1、A2、A3、A4、A5、A6

RELEASE:A1、

A2今は桜摘みコミットA3とA5のみのDevから解放する場合。これでコミットの履歴は次のようになります。チェリーピックされたコミットは新しいSHAを持つでしょう(b1 & b2)。

リリース:a1、a2、b1、b2。

後でDevからReleaseブランチからプルリクエストを作成しようとすると、コミットa3とa5が表示されます。

しかし、この場合、これら2つのブランチ間のコミットの違いをどのように見つけることができますか?

「rebase」という記事がありましたが、その背景にあるロジックを理解できませんでした。

+1

:' 1つの以上の既存のコミットを考えるには、適用されますそれぞれの変更を導入し、それぞれに新しいコミットを記録します。 '([ここ](https://git-scm.com/docs/git-cherry-pick#_description)から) – kowsky

答えて

3

理想的には、更新されたリリースの最初にdevをrebaseします。 A3とA5がまったく再生されません意味:

git checkout dev 
git rebase release 

その背後にあるロジックは、GitはA3とA5はB1とB2と同じであることを検出すべきであるということです。
新しいdevブランチ(そこからPRを作成する)は、もはやa3とa5を持ちません。

も参照してください: `チェリーpick`が行うことになっているまさにだ

関連する問題