Re: merge time
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 30, 2007, 08:24 UTC
- Message-ID
- <7vhcnml2no.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <20070730081439.GA907@coredump.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 5 quoted lines
> But I think making a "fake" commit to force non-fast-forward is the > wrong thing. You really want to make your "extra" commit be the merge > that wouldn't have happened (which unfortunately is not as simple as > just creating a commit by hand, since you have to actually _do_ the > merge to get the tree).
I do agree that if you really want to create a commit instead of allowing a fast forward, you really should create a proper merge commit.
But it is not hard. If it is a fast forward in reality but you are marking it as a real merge by creating a merge commit, then:
- The tree is obviously the merged branch that is a fast forward of your old HEAD;
- The first parent of the resulting merge is your old HEAD; and
- The second parent of the resulting merge is the merged branch.
So:
git merge --no-fast-forward other
when other is a fast forward of HEAD would do:
git commit-tree other^{tree} -p HEAD -p other