Scenario:
master
|
\
dev
|
\
feature1
|
|
|
/
|
/
tagV1
|
\
feature2
|
|
/
|
/
tagV2
|
\
fixForV1
|
|
/
|
/
tagV1_1
Description:
- Create repo
- Create and checkout branch dev
- Create and checkout branch feature1 .. implement the feature
- Checkout dev and merge feature1, delete feature1
- Checkout master merge dev
- Create tagV1 (Will be delivered to the customer)
- Checkout dev
- Create and checkout branch feature2 .. implement the feature
- Checkout dev and merge feature2, delete feature2
- Checkout master merge dev
- Create tagV2 (Will be delivered same or different customer)
- Checkout dev
- Create and checkout branch fixForV1 .. implement the fix
- Checkout dev and merge fixForV1
- ???
15… We need to merge tagV1 and the commits made on fixForV1 (Without including the commits made on feature2). After the merge we will create a new tag tagV1_1 and deliver this to the customer.
I know I can achieve this by doing a cherry-pick {hash of first commit made on fixForV1} ^..{hash of last commit made on fixForV1} Is there a better way to do this?