# Git 上传准备记录 本文记录当前工作空间上传 Git 前已经完成的准备,以及后续推送远端时需要注意的事项。 ## 已处理 - 已新增根目录 `.gitignore`,排除 colcon 构建产物、Python 缓存、日志、IDE 数据库和本地助手状态目录。 - 已新增根目录 `.gitattributes`,将 `.pcd`、`.db3`、`.bag`、`.mcap`、模型文件、静态库、动态库、压缩包和较大的 GIF 标记为 Git LFS 文件。 - 已确认本机安装了 Git LFS:`git-lfs/3.0.2`。 - 已确认当前未发现 `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 状态。 - 当前未配置远端仓库。 - 当前有 26 个文件由 Git LFS 管理。 ## 大文件 当前最大本地生成物是 `.vscode/browse.vc.db`,约 867 MB,已通过 `.gitignore` 排除。 仍然建议使用 Git LFS 管理以下类型的大文件: - 点云和地图测试数据:`*.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` | ## 后续推送流程 添加远端仓库后推送: ```bash git remote add origin <远端仓库地址> git push -u origin main ``` 如果远端平台需要 Git LFS,请确认远端仓库已启用 LFS,并在推送前执行: ```bash git lfs install git lfs ls-files ``` 如果以后决定改成 submodule 管理第三方依赖,需要从当前单体仓库方式重新设计 `.gitmodules`,并替换对应目录的 vendored source。