git rebase --onto的多种用法
时间: 2023-07-21 18:35:26 浏览: 445
git rebase --onto 是一个非常有用的 Git 命令,它可以帮助我们将一个分支上的一段提交记录移动到另一个分支上,或者将某个分支上的一段提交记录转移到另一个分支上。
以下是 git rebase --onto 的多种用法:
1. 将一个分支上的一段提交记录移动到另一个分支上
```
git rebase --onto <newbase> <oldbase> <branch>
```
- `<newbase>`:新的基础分支,即要将提交记录移动到的分支。
- `<oldbase>`:原来所在的基础分支,即要移动提交记录的分支。
- `<branch>`:要移动的提交记录所在的分支。
例如,我们要将 feature 分支上从 commit1 到 commit3 的提交记录移动到 master 分支上,可以使用以下命令:
```
git rebase --onto master commit1 feature
```
2. 利用 rebase --onto 合并两个分支上的提交记录
```
git rebase --onto <newbase> <oldbase1> <oldbase2>
```
- `<newbase>`:新的基础分支,即要将提交记录合并到的分支。
- `<oldbase1>`:要合并的第一个分支的基础分支,即要合并的第一个分支的起点。
- `<oldbase2>`:要合并的第二个分支的基础分支,即要合并的第二个分支的起点。
例如,我们要将 feature1 分支上从 commit1 到 commit3 和 feature2 分支上从 commit4 到 commit6 的提交记录合并到 master 分支上,可以使用以下命令:
```
git rebase --onto master commit3 commit4
```
3. 在当前分支上修改某个提交记录
如果我们需要在当前分支上修改某个提交记录,可以使用以下命令:
```
git rebase --onto <newbase> <oldbase> <commit>
```
- `<newbase>`:新的基础分支,即要修改提交记录的分支。
- `<oldbase>`:修改前的基础分支,即要修改提交记录所在的分支。
- `<commit>`:要修改的提交记录的 SHA-1 值。
例如,我们要在当前分支上修改 commit1 的提交记录,可以使用以下命令:
```
git rebase --onto HEAD~1 HEAD commit1
```
上述是 `git rebase --onto` 的三种常见用法,希望对你有所帮助。
阅读全文