交互式重置:清理提交

../_images/git-interactive-rebase-top-image.png

本页简要介绍了如何 使用交互式数据库 上的提交进行清理 克隆.这通常需要在 向 ArduPilot 主软件源提交拉取请求.

这些说明提供的是命令行说明,但同样的操作也可以通过 Git GUI 编辑器完成,包括 源代码树.

互动式重建的步骤

  • 打开终端并 cd 到你的 克隆的 目录,查看 分支机构 您希望清理

    CD ardupilot
    git 销售点 我的--功能-分支机构
    
  • 使用 git rebase -i 命令,并指定要修改的提交范围。例如,要修改最近 10 次提交中的任何一次:

    git  -i "HEAD~10";
    
  • 在弹出的终端中(见本页顶部图片)找到您要修改的提交,并替换它们的 选择 用以下字母之一表示

    • s 对于 压扁 会将该提交与前一个提交合并。在上面的示例中,"AP_HAL_F4Light: 修正了一些支持脚本 "和 "AP_HAL_F4LIGHT: 小型修正 (NFC) "将被 "压扁 "到一个提交中

    • r 对于 重拟 允许您更改提交的主题和描述。请注意,您不能简单地在查看器中修改主题行。首先必须用 r 稍后,git 会弹出另一个视图,允许您修改主题和描述

    • e 对于 编辑 允许您修改提交内容(即添加或删除更改)

    • d 将删除提交,或者也可以直接从查看器中删除该行

    • 您还可以上下移动行来重新排列提交的顺序

  • 保存并退出查看器。git 会从上到下运行文件,并在需要时暂停,以便您进行所要求的修改。

    • 如果提交被标记为 s 对于 压扁此时会弹出另一个查看器,要求您提供提交信息和主题行。

      ../_images/git-interactive-rebase-squash.png
    • 如果提交被标记为 e 对于 编辑,查看器将返回常规命令行。随意编辑文件,提交更改,然后键入 git --继续 允许 git 继续处理其他改动。

当事情出错时

如果更改提交顺序或编辑提交内容,可能会发生合并冲突。如果能用合并工具(如 TortoiseMerge),然后就可以通过键入允许继续进行交互式重置:

git  --继续

或者,您也可以终止交互式重置,这样就能将分支恢复到开始交互式重置前的原始状态

git  --中止