---
# System prepended metadata

title: MIGRATING LOCAL TO ANOTHER REPO

---

# MIGRATING LOCAL TO ANOTHER REPO
## Add new remote repository named production
```git
git remote add production git@url:project.git
```

## Squash all commits since the creation of the branch
```git
git checkout myBranch           # switch to mBranch
git log master..myBranch        # shows commits made since the creation of the myBranch branch out of master
git rebase -i master            # interactive rebase
```

### When editor opens:
- :%s/pick/s/g              # vim command to replace all pick words with s (squash) from the file
- only **first** commit should be left as pick (p)

## Push changes into production remote repo
```git
git push production feature1:feature1-production
git checkout feature1-production
```

## Remove commits from the previous parent branch
```git
git rebase -i origin/master -Xtheirs        # accept feature branch changes on conflicts
```

### When editor opens:
- :%s/pick/d/g              # vim command to replace all pick words with d (delete)from the file
                              to delete all previous commits
- only **last** commit should be left as pick (p)

## If some conflicts arise, resolve them and execute following commands:
```git
git add .                               # add all files to the stage
git commit                              # commit files
git rebase --continue                   # continue with rebasing
```

```git
git push -f                             # force push changes at the end
```