Jeff King <peff@xxxxxxxx> writes: > 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 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html