针对PX4代码,在github库中建立了Firmware的分支,ADRC_branch,用于存放修改的代码,其中涉及了子模块ecl的修改。
代码下载:
- git clone https://github.com/lsr123/Firmware.git 当时fork的是v1.9.2的代码
- git checkout ADRC_branch (该分支是基于V1.7.3创立的),此时子模块中没有代码
- git submodule sync --recursive 同步子模块链接
- git submodule update --init --recursive 更新子模块
- 代码下载完毕后,应该可以make px4fmu-v2_default 成功。
代码修改后上传:
- 若不涉及子模块的修改,则直接 git add .
- 然后,git commit -m ’ 内容’
- 再,git push origin ADRC_branch
- 若涉及了子模块的修改,以ecl为例,则先cd到子模块目录 git add .
- git commit -m ‘内容’
- git push origin ADRC_testbranch (该分支提前fork到自己空间,由master分支创建)
- 再cd到父工程目录,同样执行一遍添加,提交,推送的操作。
- 两个推送完成后,可以运行 make px4fmu-v2_default 。若不推送父工程,则无法make px4fmu-v2_default
几个常用的命令:
git checkout -b 新分支名字 从当前指针创建新的分支,并切换
git branch -d 分支名字 删除指定的分支
git status 查看状态
从远程分支,同步代码到本地。同步前,保证远程的分支比本地分支更新。
- git remote -v 查看远程分支
- git fetch origin ADRC_branch:temp 将远程分支获取到本地的temp分支
- git diff temp 比较当前分支与temp分支的区别
- git merge temp 将temp分支,合并到本地的当前分支
- git branch -d temp 删除本地temp分支。至此,本地分支与远程的ADRC_branch 分支一致;
注意:获取远程分支代码时,需要在子模块中进行相同的操作,才能更新子模块的代码。
在本地的不同分支之间切换时,若涉及到子模块,需要
git submodule sync --recrusive
git submodule update --init --recursive
才能成功切换分支
本地开发流程
- 首先新建分支 git checkout -b work_branch 在新建的分支上进行开发,
- git add.
- git commit -m ‘update’ 提交修改的内容
- git checkout ADRC_add_roll_loiterlanding 切换回主分支
- git merge work_branch 将work_branch 合并到主分支
- git branch -d work_branch 删除临时分支