apollo_logo
4
0

【赛事资料】Patch文件的制作(一)

准备事项

参赛者都是以百度Apollo提供的安装脚本安装的本地Apollo系统,缺少了部分对Git的操作确保git仓库配置是正确的。在本地打开命令窗口,分别执行以下两条指令,此处需要正确的填写你在注册gitee时候的邮箱和用户名。

git config --global user.email "注册gitee时用的邮箱"
git config --global user.name "gitee的用户名"

核心思想:保存当前的更改,拉取远端最新版本分支代码到本地,基于最新版开发及制作patch。

一、保存当前的修改并提交

1.1、备份planning文件

cp -r ~/apollo/modules/planning ~

1.2、切换一个新的分支

git checkout -b test origin/edu_sim_contest //切换分支后commit会与之前的commit一致

1.3、将工作区变为干净状态

git status

通过git status 查看当前的工作区有哪些文件未提交的文件

工作区文件分为两块,工作区内改动文件与未跟踪文件,需要将工作区内还原成干净的状态

git checkout . //放弃工作区内所有改动文件
git clean -d -f //删除所有的未跟踪文件

1.4、替换planning文件

cp -r ~/planning ~/apollo/modules/

1.5、通过 git add 将未提交的文件添加到暂存区

git add . //将工作区内的所有改动全部添加

当出现绿色所示字样,就表示我们的修改被存储到了暂存区。

1.6、通过 git commit 提交修改到本地库并写上摘要信息

git commit -m 'kaixin'

提交 git commit 之后,我们再通过git status查看工作区,可以看到工作区已经没有任何内容了,通过git log可以看到系统中已经有一条为kaixin这样的commit记录了,其中70cac519e7383b39f22572c1abdd761c4c6153d3为本次的commit_id,下方为f24630b30b76d8b14bf1815dc2a025277e034649为origin/edu_sim_contest远端分支这样我们就可以直接进行patch的制作。

1.7、使用git format-patch制做patch文件

git format-patch f24630b30b76d8b14bf1815dc2a025277e034649

二、检验Patch文件是否可用

制作好ptach文件后,在本地进行检验Patch是否可用,是一个很好的习惯,可以避免很多问题的发生,此处推荐大家新建一个仓库来进行验证(验证的本质是看patch文件是否可以合并到该分支中去)

2.1、创建或者切换到一个临时的分支(确保与远程分支edu_sim_contest一致)

git checkout -b tmp origin/edu_sim_contest #以远端edu_sim_contest分支为基础创建并切换到tmp本地仓库

2.2、使用git apply 检验patch是否可以合并到该分支

git apply --check 0001-kaixin.patch

通过git apply check 进行Patch文件的检验,如果没有报错的话,那就表示Patch文件是可用的,就可以上传评测了。

三、清除多余的本地分支(选择性操作)

多次执行文档内的命令会生成许多分支,一些很久前的提交我们可能不会在用到,可以选择将这个分支进行清除

git branch
git branch -D sim_context //sim_context为想要删除的分支名称

来自专栏
带你玩转自动驾驶竞赛查看专栏 >
原创声明,本文由作者授权发布于Apollo开发者社区,未经许可,不得转载。
发表评论已发表 0 条评论
登录后可评论,请前往 登录
暂无评论~快去发表自己的独特见解吧!
目录
准备事项
核心思想:保存当前的更改,拉取远端最新版本分支代码到本地,基于最新版开发及制作patch。
一、保存当前的修改并提交
1.1、备份planning文件
1.2、切换一个新的分支
1.3、将工作区变为干净状态
1.4、替换planning文件
1.5、通过 git add 将未提交的文件添加到暂存区
1.6、通过 git commit 提交修改到本地库并写上摘要信息
1.7、使用git format-patch制做patch文件
二、检验Patch文件是否可用
2.1、创建或者切换到一个临时的分支(确保与远程分支edu_sim_contest一致)
2.2、使用git apply 检验patch是否可以合并到该分支
三、清除多余的本地分支(选择性操作)