On Nov 27, 2017, at 00:35, Igor Djordjevic <[email protected]> wrote:
> Approach discussed here could have a few more useful applications,
> but one seems to be standing out the most - in case where multiple
> topic branches are temporarily merged for integration testing, it
> could be very useful to be able to post "hotfix" commits to merged
> branches directly, _without actually switching to them_ (and thus
> without touching working tree files), and still keeping everything
> merged, in one go.
I'm actually doing the described workflow quite often with git rebase when
working on a topic. Given the following structure:
---o (master)
\
o---A---B---C (topic)
When I want to make changes to commit A one option is to make them directly on
topic, then do "git commit --fixup A", and then eventual interactive rebase
onto master will clean them up:
---o (master)
\
o---A---B---C---f!A (topic)
However, sometimes this breaks when changes in B or C conflict somehow with A
(which may happen quite a lot during development of a topic), so the rebase
will not apply cleanly. So sometimes I make a temporary branch from A, commit
the fixup there:
---o (master)
\
o---A---B---C (topic)
\
f!A (temp)
and then use "git rebase --onto temp A topic" to move the topic back on track:
---o (master)
\
o---A---f!A (temp)
\
B'---C' (topic)
after which the final cleanup rebase is much easier to do.
Obviously, all the branch switching and rebasing does take its tall on file
modifications.