无网络树莓派与公司Git仓库同步及CMake构建方案咨询
解决方案
一、Git跨设备版本同步方案(核心解决版本追踪问题)
因为树莓派无法直接访问公司GitHub,可将Windows PC作为Git仓库的中转节点,实现树莓派与公司仓库的版本同步:
- 在Windows PC上确保本地仓库与公司GitHub同步:
git pull origin main # 替换为你的实际分支名 - 在树莓派上配置Windows PC的本地仓库为远程源:
- 如果树莓派上的项目还未初始化Git,先执行:
git init git add . git commit -m "initial commit" - 添加Windows PC的远程仓库(注意Windows路径需转换为Git兼容格式,比如
C:\code\my-project要写成/c/code/my-project):git remote add pc ssh://<Windows用户名>@<Windows设备IP>/c/code/my-project
- 如果树莓派上的项目还未初始化Git,先执行:
- 树莓派拉取Windows PC上的最新代码:
git pull pc main - 树莓派提交本地变更并推送到Windows PC:
git add . git commit -m "描述你的变更" git push pc main - 最后在Windows PC上将变更推送到公司GitHub:
git push origin main
这个方案能完整保留Git版本历史,避免手动同步文件夹的繁琐和版本丢失问题。
二、CMake相关问题解答
直接通过cmake -S [SSH路径]指定远程源码目录不可行,CMake的-S参数仅支持本地文件系统路径,无法直接解析SSH远程地址;修改CMakeLists.txt指向SSH路径同样无效,CMake构建时依赖本地文件访问。
替代方案:
- 优先用上面的Git同步方案,将代码拉到树莓派本地后再执行构建:
cmake -S ./本地源码目录 -B build cmake --build build - 若仅需同步源码而非完整Git历史,可使用
rsync通过SSH高效同步变更文件(比scp更节省带宽):
同步完成后再进行本地CMake构建。rsync -avz --delete ssh://<Windows用户名>@<Windows设备IP>/c/code/my-project/ ./本地源码目录/
三、Windows共享目录挂载修复建议
之前挂载失败可尝试以下步骤:
- 在树莓派上安装SMB挂载工具:
sudo apt update && sudo apt install cifs-utils - 创建挂载点:
sudo mkdir /mnt/win-repo - 执行挂载命令(替换为你的Windows设备信息):
注意:Windows需开启文件夹共享权限,且防火墙允许SMB服务(端口445)的局域网访问。挂载成功后,可直接将sudo mount -t cifs //<Windows设备IP>/<共享文件夹名称> /mnt/win-repo -o username=<Windows用户名>,password=<Windows密码>,vers=3.0/mnt/win-repo作为本地目录用于CMake构建。
内容的提问来源于stack exchange,提问作者Manu310
相关产品推荐
相关产品推荐

