Files
FaRui_Campus_ADS/docs/git-upload-prep.md
T

5.8 KiB

Git 上传准备记录

本文记录当前工作空间上传 Git 前已经完成的准备,以及后续推送远端时需要注意的事项。

已处理

  • 已新增根目录 .gitignore,排除 colcon 构建产物、Python 缓存、日志、IDE 数据库和本地助手状态目录。
  • 已新增根目录 .gitattributes,将 .pcd.db3.bag.mcap、模型文件、静态库、动态库、压缩包和较大的 GIF 标记为普通 Git 二进制文件。
  • 远端 Git LFS 接口不可用,已将原 LFS 指针转回普通 Git 对象。
  • 已确认当前未发现 build/install/log/ 目录。
  • 已备份并删除无效/嵌套 .git/ 元数据,备份目录为 /tmp/farui_git_metadata_backup_20260605_132216
  • 已初始化根目录 Git 仓库,当前分支为 main
  • 已创建本地初始提交,提交信息为 Initial import of FaRui Autoware Dual-Orin Stack
  • 已规范 Git 中的 executable bit,仅保留带 shebang 的脚本为可执行。

当前仓库状态

  • 根目录只有一个有效 .git/
  • 工作区当前为 clean 状态。
  • 当前远端仓库为 http://git.fairylandtech.com/whut/FaRui_Campus_ADS.git
  • 当前没有文件由 Git LFS 管理。

大文件

当前最大本地生成物是 .vscode/browse.vc.db,约 867 MB,已通过 .gitignore 排除。

当前内部 Git 服务器没有可用的 LFS 接口,因此以下类型的大文件以普通 Git 二进制文件提交:

  • 点云和地图测试数据:*.pcd
  • ROS bag 数据:*.db3*.bag*.mcap
  • SDK 或第三方二进制库:*.a*.so
  • 模型和推理制品:*.onnx*.engine*.pt*.pth
  • 压缩包和大型演示图:*.zip*.tar**.gif

嵌套 Git 仓库

工作空间内存在多个嵌套 .git/ 目录。若直接在根目录提交,Git 会把这些目录识别为 嵌入式仓库或 submodule 风格条目,容易导致克隆后源码不完整。

建议二选一:

  • 作为 vendored source:记录来源和 commit 后,删除内部 .git/ 目录,把源码完整纳入主仓库。当前初始提交采用此方式。
  • 作为 submodule:在根仓库中正式配置 .gitmodules,由 Git 管理第三方依赖版本。

当前记录到的嵌套仓库如下:

路径 Commit Remote
master/src/Api/tier4_ad_api_adaptor 3de19bc https://github.com/tier4/tier4_ad_api_adaptor.git
master/src/Driver/Camera/hikvision_ros2_driver a2f8538 https://github.com/sjtu-cyberc3/hikvision_ros2_driver.git
master/src/Driver/Vehicle/ros2_socketcan 85da8c3 https://github.com/autowarefoundation/ros2_socketcan
master/src/Mapping/fast_lio2 18418bc https://github.com/Ericsii/FAST_LIO_ROS2.git
master/src/Mapping/liorf da22fa0 https://github.com/YJZLuckyBoy/liorf.git
master/src/Mapping/livox_ros_driver2 378d1c7 https://github.com/Ericsii/livox_ros_driver2.git
master/src/Vehicle/sensor_component_description 0798200 https://github.com/tier4/sensor_component_description.git
master/src/universe/common/glog ea36766 https://github.com/tier4/glog.git
master/src/universe/common/muSSP c79e98f https://github.com/tier4/muSSP.git
master/src/universe/core/autoware_cmake 890e312 https://github.com/autowarefoundation/autoware_cmake.git
master/src/universe/core/autoware_common 6752ca7 https://github.com/autowarefoundation/autoware_common.git
master/src/universe/core/autoware_lanelet2_extension 6fc35a0 https://github.com/autowarefoundation/autoware_lanelet2_extension.git
master/src/universe/core/autoware_msgs/autoware_adapi_msgs 2512a4f https://github.com/autowarefoundation/autoware_adapi_msgs.git
master/src/universe/core/autoware_msgs/autoware_internal_msgs 4f5feff https://github.com/autowarefoundation/autoware_internal_msgs.git
master/src/universe/core/autoware_msgs/autoware_msgs 4f9f1c0 https://github.com/autowarefoundation/autoware_msgs.git
master/src/universe/core/autoware_utils 451419e https://github.com/autowarefoundation/autoware_utils.git
slave/src/Api/tier4_ad_api_adaptor 3de19bc https://github.com/tier4/tier4_ad_api_adaptor.git
slave/src/Driver/Vehicle/Pixkit_Chassis_Driver/pix_driver a0c4902 https://github.com/pixmoving-moveit/pix_driver.git
slave/src/Driver/Vehicle/ros2_socketcan 85da8c3 https://github.com/autowarefoundation/ros2_socketcan
slave/src/Vehicle/sensor_component_description 0798200 https://github.com/tier4/sensor_component_description.git
slave/src/universe/core/autoware_cmake 890e312 https://github.com/autowarefoundation/autoware_cmake.git
slave/src/universe/core/autoware_common 6752ca7 https://github.com/autowarefoundation/autoware_common.git
slave/src/universe/core/autoware_lanelet2_extension 6fc35a0 https://github.com/autowarefoundation/autoware_lanelet2_extension.git
slave/src/universe/core/autoware_msgs/autoware_adapi_msgs 2512a4f https://github.com/autowarefoundation/autoware_adapi_msgs.git
slave/src/universe/core/autoware_msgs/autoware_internal_msgs 4f5feff https://github.com/autowarefoundation/autoware_internal_msgs.git
slave/src/universe/core/autoware_msgs/autoware_msgs 4f9f1c0 https://github.com/autowarefoundation/autoware_msgs.git
slave/src/universe/core/autoware_utils 451419e https://github.com/autowarefoundation/autoware_utils.git

后续推送流程

添加远端仓库后推送:

git remote add origin <远端仓库地址>
git push -u origin main

如果以后决定改成 submodule 管理第三方依赖,需要从当前单体仓库方式重新设计 .gitmodules,并替换对应目录的 vendored source。