Sometimes, when I am developing a big feature, I create a secondary branch (out of my original feature branch) to make it easier for my colleagues (and for myself sometimes) to visualize differences between parts of the same feature. It should look like this:
main --o--o--o---------
\
feature o--o--o--o--o
\
secondary o--o--o
When I need to merge everything, I usually merge secondary on feature and then to main, which works just fine. The problem is that sometimes I need to "merge by steps", meaning that I cannot merge secondary into *feature, but I have to merge feature into main, first. In that case, when I update secondary with everything new in main, it messes it up a bit, like having conflict in most files modified on both feature and secondary.
What should be the best approach to not mess this up?
P.D.: this may be a common question, but searching I couldn't put it to words to find a similar question :(