I have done a replacement of one commit with another in this way:
* HEAD | ... | * ==> * `git replace left_commit right_commit` | | *-----/ | ...
Found the answer in mailing-list:
git push origin 'refs/replace/*' git fetch origin 'refs/replace/*:refs/replace/*'
Only explicit pushing and fetching do work right now in git.