So I'm trying to understand how Git handles certain processes and what are some already used practices.
Let's say we have a Git repository with a branch called master
. We also have two branches that are created simultaneously from master
. We'll call them branch_one
and branch_two
.
branch_one
already has work completed for a specific feature. I am currently developing on branch_two
. For the sake of this conversation, let's assume that I can't merge branch_one
to master
because it's pending approval from other developers.
Here's the issue:
I need all of the work from branch_one
in order to continue work on branch_two
.
Here is my current flow:
1) merge branch_one
into branch_two
.
2) work on branch_two
.
3) rebase branch_two
with master
before submitting a pull request.
Uh-oh. The rebase has conflicts on 30+ patches. I assume this is because the merge (step 1) changes the head of branch_two
. I may be assuming incorrectly.
Obviously I would like to avoid a massive conflict resolution step in my version control process.
So my questions:
Is there a better way to handle this type of process, where a feature branch requires changes from another feature branch, that doesn't include massive conflicts?