重新设定分支基础
变基会在另一个分支之上重放您分支的提交,因此历史记录保持一条直线,例如 git rebase。提交获得新的 ID; GitTree 将旧分支保留在 refs/ogt/trash 下,而 Undo 将其恢复。
免费已更新
免费使用 GitTree:登录后的所有本地 Git 功能。
开始之前
- 查看您要移动的分支,例如
feature/search。 - 更喜欢只有您工作的分支:变基重写其他人可能已经拥有的提交。
在哪里可以找到它
- 右键单击要变基到的分支的标签:Rebase … onto …。
- 右键单击任何提交:Rebase … onto 该提交。
- 将分支标签拖到另一个分支上,然后选择变基。
| 行动 | macOS | Windows 和 Linux |
|---|---|---|
| Undo 变基 | ⌘Z | Ctrl+Z |
步骤
检查选项
确认信息表明每次提交都会使用新的 id 重播,并保留旧分支。在 Options for this rebase 下,您可以存储本地更改并将其放回原处,以及移动指向这些提交的分支。
变基
按 Rebase …。横幅在运行时显示 Rebasing … onto …, step … of …。
预期结果
你的分支从另一个分支的尖端开始,它的提交在它上面的一条直线上。如果它已经在遥控器上,则用力推和租赁来推动它。
当步骤发生冲突时
- Resolve 打开有冲突的文件;当它们解决后,Continue 继续下一步。
- Skip 删除冲突的提交并继续。
- Abort… 停止并将分支原样放回原来的位置。
如果出现问题
由于本地更改,变基无法启动
在变基选项中打开存储本地更改,或者首先提交或存储它们 (stashes)。
rebase后推送被拒绝
远程仍然有旧的提交。使用Force Push (With Lease)…;如果其他人同时推送(fetch, pull and push),它会拒绝。
问题
在变基时如何压缩或重新排序提交?
使用交互式变基:您可以为每个提交选择是否选择、重写、编辑、压缩、修复或删除它,并拖动以重新排序。
