Skip to content

Instantly share code, notes, and snippets.

@trdarr
Last active December 23, 2015 07:29
Show Gist options
  • Save trdarr/6600850 to your computer and use it in GitHub Desktop.
Save trdarr/6600850 to your computer and use it in GitHub Desktop.
A manual cross-repository rebase
# If you haven't already, clone the new repo and `cd` into its directory.
git clone git@github.com:username/new-repo.git
cd new-repo
# Add the old repo as a remote and fetch from it.
# If you're trying to do this from an unpushed branch,
# git remote add old-repo ~/dev/old-repo.git
git remote add old-repo git@github.com:username/old-repo.git
git fetch old-repo
# Create local branches that track the old-repo's develop and feature.
git checkout -b old-develop --track old-repo/develop
git checkout -b feature --track old-repo/feature
# Rebase from old-develop..feature onto develop.
# That is, starting at develop, recommit the commits that comprise feature.
git rebase -s subtree --onto develop old-develop feature
# Push the newly-rebased feature to origin.
git push --set-upstream origin feature
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment