重定向:保持代码最新¶
在您开发的过程中,ArduPilot 的主分支很可能会被其他开发人员的 "提交 "所更新。您应该 及时更新当地分支机构和分叉点的信息 以便您使用最新的代码,也便于维护者最终将您的更改合并到 ArduPilot 的主分支。
尤其是,最好将本地 repo 和分叉 repo 的主分支与 ArduPilot 的主分支保持同步。
"重定向 "允许你从 ArduPilot 的主分支更新一个分支,然后重新应用你对该分支所做的任何更改。
以下命令可直接输入 Linux/OSX 终端,如果使用 Windows,则可启动 "Git Shell "或 "Git Bash "工具。 安装.
导航至您的 ardupilot git 仓库。
CD <;ardupilot-路>;
从这里开始,我们将假定你想在 ArduPilot 主分支上重置你的主题分支。此过程与主分支相同,只需将 topic-branch 替换为 master。请确保您正在查看的是主分支或您要重定向的分支。
git 销售点 主题-分支机构 git 子模组 更新 --启动 --递归
如果您想创建一个新分支,并在 ArduPilot 主分支的基础上重新构建、
git 销售点 -b 主题-分支机构 git 子模组 更新 --启动 --递归
确保你的版本库连接到你分叉而来的上游版本库。
git 远程 增加 上游部门 https://github.网/ArduPilot/ardupilot.git
从上游版本库中获取变更(这只是将变更下载到本地缓存中,不会以任何方式覆盖或修改你的变更)。如果要在自己分叉的主干分支上重定向分支,请用 origin 代替 upstream
git 取得 上游部门 git 子模组 更新 --启动 --递归
从上游的主分支重置当前分支。
git 躏 上游部门/师
初始化并更新本地软件仓库的子模块
git 子模组 更新 --启动 --递归
检查重置是否成功。使用 cmdline (
git 登录 --在线 --装饰 --全部 --图
键入 q 退出)或 Gitk、sourcetree 等图形用户界面工具。您的提交应该出现在 ArduPilot 主控最新提交的顶部,如上图所示。现在将更新的分支推送到你的 github 仓库
git 推动 产地 主题-分支机构
当事情出错时¶
上述重置步骤(第 5 步)可能会因为一些原因而失败:
本地版本分支中的文件有未提交的更改。阶段并提交这些更改,然后再试一次。
存在合并冲突,即另一位开发人员修改了与你的新提交相同的代码行。有两种选择
中止重置,将分支恢复到重置前的状态、
git 躏 --中止
.如果您愿意在本地版本的分支中丢弃新提交的内容,可以使用以下方法 "重置 "您的分支,使其与上游主版本一模一样git 重置 --硬 上游/主站
.使用合并工具,如 TortoiseGit 解决合并冲突,然后使用
git 躏 --继续
如果添加了新的子模块,子模块更新(步骤 6)有时会失败。 git 子模组 启动
通常可以解决这个问题。
如果您的系统出现以下情况,上述推送步骤(步骤 7)可能会失败 分叉的分支已经更新过。您可以使用 git 推动 -f
会覆盖你的 github 分支,使其看起来像本地版本库的分支。如果远程版本库中不存在主题分支,它也会失败。在这种情况下,使用
git 推动 -u 产地 主题-分支机构
在那里创建分支,并让本地主题分支跟踪它。