I took the liberty of monospacing your ascii-art below: master dev > | | > v v > A ---> B ---> C > > .....
> > master dev bugs/5 > | | | > v v v > A ------> B ----> Ca ... (future work on bug #1234 here) > \ > -----> Cb ... (future work on bug #2345 here) > ^ > | > bugs/7 I think your approach seems fine. A different way of doing it is to hold off reseting the dev branch (or copy the commitish of it and use that), and get the changes into the branches by checking them out, instead of keeping them in the work-tree/stash: ... git commit -am "partial work on bugs 5 and 7" #in dev branch git checkout bugs/5 dev~1 #note that I'm basing on the prev commit in dev branch git checkout -p dev # select stuff for bug 5 git commit -am "partial work on 5" git checkout -b bugs/7 dev~1 git checkout -p dev # select stuff for bug 7 git commit -am "partial work on 7" git checkout dev git reset HEAD~1 # you could've done first, but then you need to copy the commitish first, and use that when you use checkout -p above, instead of dev Of course, with this approach, I need to sift through the changes in dev twice. -- You received this message because you are subscribed to the Google Groups "Git for human beings" group. To view this discussion on the web visit https://groups.google.com/d/msg/git-users/-/20sd0NENwBcJ. To post to this group, send email to git-users@googlegroups.com. To unsubscribe from this group, send email to git-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/git-users?hl=en.