# Give a commit a new parent

Given I have these logical commits on two branches:

```
normalbranch: A - B - C - D
funkybranch: Z - Y - X
```

```
git co normalbranch
git rebase --onto X C
```

Then the logical commits of `normalbranch`

will now be:

`normalbranch: Z - Y - X - C - D`

We’ve given commit `C`

the new parent of `X`

. `C`

’s hash will change and `D`

’s hash will change.

I use this when I build on top of a branch that I’ve already submitted for a PR. That branch will get merged into the new root branch, and then I’ll need the new parent on the root branch for the commits that I’m currently working on.