Tool: svn2git Steps 1. git reset --hard {commit_id} (commit_id is the last common parent commit) 2. svn2git --rebase (merge the commits from svn trunk to local git master) 3. git checkout -b rebase-svn (create rebase-svn branch) 4. git push origin rebase-svn (push to create new branch) 5. PR and merge in Github NOTE 1. NO pull origin master, since it will create dup commits when create rebase branch and PR to master 2. if local git not clean, stash first, and pop the stash after everything (every code merge) is done this will help the repo commit history is more linear