I have the following case
o--A--B--C <-origin/master
\-D--E <-master
I would like to achieve the following
o--A--B--C--D--E <-origin/master
and also keeping the tags at D and E.
If I do a rebase then the D and E would be merged resulting D' and E'
o--A--B--C--D'--E' <-origin/master
Also the tags would not be moved and still pointing to hash of commit D and E.
Update 1
If I have file A.txt at C and file B.txt at D, the rebase will keep both A.txt and B.txt at commit D'. How can I do a rebase but preserve all the file structure and content what I had at D.?
If nodes D and E have tags, they will not be moved with the rebase. D and E are placeholder names for hashes, and are not git tags.
I think you may have been using the word tag incorrectly, or in a casual sense. But a
git tagis exactly what you want.