Elijah Newren <newren@xxxxxxxxx> writes: > Using your own words: > > "the replace mechanism is about telling Git: when anybody refers to > deadbeef, use its replacement if defined instead." "When anybody wants the contents of deadbeef, give the contents of its replacement" is what the replace (graft, too) is. > git branch didn't do that; it put deadbeef into refs/heads/foobar. Yes, but refs/heads/foobar having deadbeef does not have a problem, as long as you get the contents of the replacement object when you ask for the contents of deadbeef (or "the object referred to by the refs/heads/foobar ref").