Git – Moving Pushed Commits to a Different Branch

Getting the branch is easy:

git branch their-branch master
git reset --hard master $SHA1_OF_C
git push --force $SHARED_REPO_REMOTE

This will rewrite history; it creates a new branch that is equivalent to the current master branch named their-branch, then resets your local master to point to a random SHA1 (…or branch, or tag, or whatever), and finally forcibly updates the remote repository branch to match your local branch.

That delivers exactly the situation you want.

Caveats: this will rewrite history, and can screw up anyone who has built off the old master. Watch out for merge problems following.

No rebasing desired or required.

(As an aside, I suggest you either give them a staging repository, or get them to use git send-email, or use GitHub pull requests, or otherwise prevent them pushing to master until they get it right. Which, based on your summary, might be some time away.)

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)