From: Jonathan Nieder Date: Fri, 26 Nov 2010 21:43:25 GMT Subject: Re: 'git replace' and pushing Message-ID: <20101126214325.GC23462@burratino> In-Reply-To: Hi Cory, Cory Fields wrote: > I realize that allowing replacements to be pushed "behind users backs", so > I guess not respecting it makes sense. > > But is there no way that I can pull this off without rewriting hashes? The usual way to accomplish what you are talking about would be like this: Real history ------------ 4' --- 5 --- 6 1 --- 2 --- 3 --- 4 Fake history ------------ 1 --- 2 --- 3 --- 4 --- 5 --- 6 Replacement ref --------------- 4' --> 4 This way, a person a person can fetch either piece of real history without trouble, and if they fetch the replacement ref, too, the history is pasted together. It is not possible in git to push a commit without its ancestors; replacement refs do not change that. However, it is sort of possible to fetch a commit without its ancestors using the --depth option to clone and fetch. Hope that helps, Jonathan