I want to use git-replace to connect two disjoined commits (git-svn didn't detect massive file movement) and I want to share these replace refs with others (we're moving from svn to git). I cannot use git-rebase because the history after the split contains lots of branches and merges and using git-rebase for that is an overkill. I did something like this: # Setup some repositories and create basic commit. git init --bare repo git init a git init b cd a echo a > a && git add a && git commit -m initial git branch tmp echo b > b && git add b && git commit -m second git checkout tmp echo c > c && git add c && git commit -m replacement # Replace a commit with another one git replace `git rev-parse master` `git rev-parse tmp` # Push changes to public repo; this doesn't push replace refs. git push --all ../repo/ # Is this the best way to push replace refs? git push ../repo/ 'refs/replace/*' # Fetch commits from public repo cd ../b/ git pull ../repo/ # We didn't fetch replace refs in previous git-pull. But this seems to work. Is this the correct way? git fetch ../repo/ 'refs/replace/*:refs/replace/*' # I also added "fetch = +refs/replace/*:refs/replace/*" to [remote "origin"] in "b" and this also seems to work. -- 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