摘要
一次性讲透、直接能用的 git bundle create 完整用法,专门适配的场景:Jetson 板子 → 本地电脑 → GitLab,
整套固定流程:Jetson AGX 用 git bundle 打包 → 拷到本地 → 解包 → 推送到 GitLab
一、为什么要用 git bundle?
Jetson AGX 板子不能直接连 GitLab
板子也不能直接推送到云端
只能通过 文件拷贝 传到本地电脑
再从本地电脑推送到 GitLab
git bundle 就是干这个的:
把整个 Git 仓库打包成 1 个文件 → 拷贝到本地 → 本地解开 → 正常推送 GitLab
比直接拷文件夹干净、完整、不会丢提交记录。
二、完整流程
全程固定命令,以后重复用就行,不用改。
1、在 Jetson AGX 端操作(打包Git 仓库)
- 进入你的工程根目录(已经是 git 仓库的文件夹)
cd 你的工程路径
git log --oneline # 查看历史记录
# 如果需要恢复到之前版本,就需要重置
git reset --soft 号
git diff --staged --name-only # 查看暂存区,是否为自己修改提交的部分


- 执行打包(只打 master 分支完整历史)
git bundle create my_code.bundle master # 打包
git bundle verify my_code.bundle # 查看是否打包成功
执行完生成文件:my_code.bundle
这个文件包含:
所有提交记录
所有分支
所有代码
完整 Git 历史
和仓库一模一样。

- 把这个 my_code.bundle 拷贝到 Windows 本地任意文件夹
2 本地电脑解开 bundle(还原成 Git 仓库)
正确步骤顺序是这样:
a. 在本地创建 smf 分支(写代码、测试,如果无变动,可以不用修改)
b. 在 smf 分支上提交代码
c. 把 smf 推送到云端 GitLab
d. 在 GitLab 网页上把 smf 合并到 master
e. 合并完成后,删除本地 smf
f. 删除云端 smf
1.打开 Git Bash(右键选择git bash),进入目录:
cd /d/你的存放文件夹
2. 解包还原成完整 git 仓库
到本地已有git工程目录下
- 从 master 新建分支
# 创建smf分支,切换到smf分支
git checkout -b smf
# 解包
git pull my_code.bundle master

你会得到一个完整的 Git 仓库:
D:\work\ai_perception\
3. 进入还原后的仓库目录
cd ai_perception
4. 删掉 bundle 自带的旧远程,绑定你真实的 GitLab(可选项,只有在旧的远程仓库不是你要推送的,就需要删除)
git remote -v #
# 由于不是我需要远程仓库,所以需要删除旧远程
git remote remove origin
# 绑定你的GitLab仓库
git remote add origin http://gitlab.xxxx.com/xxx/xxxx/xxx_perception.git

5. smf分支下推送到云端
git add jeson_run.sh # 添加暂存区
git status # 查看状态,是否是自己修改以及需要提交的
git commit -m '新增 jetson_run.sh脚步'
git push origin smf
打开 GitLab 网页,切到对应分支(比如这里是smf)就能看到代码

✅ 完成!
Jetson 上的所有代码 + Git 历史全部到 GitLab。
6. 去 GitLab 网页
把 smf 合并到 master
7. 合并完成后,切换回 master,删除本地smf分支,删除云端smf分支
删除smf分支
git branch -a # 查看所有分支(本地+云端)
git checkout master # 切换到master
git log --oneline # 查看历史记录

git branch -a # 看有哪些分支,注意此时在master分支下,查看是否有其他分支
git branch -D smf # 删除 本地smf 分支
git branch # 查看是否删除smf
git push origin --delete smf # 删了云端

smf = 开发分支(用来写代码、测试)
master = 主分支(永远稳定)
开发 → 推送 → 合并 → 删除旧分支
这就是 企业标准流程 ✅
8 分支拓展
1. 分支到底有什么用?(我在 Jetson 开发最需要)
在开发时:
master 放稳定代码
新建一个分支:dev_jetson
在这个分支上写板子代码、测试、改 bug
没问题了,再合并回 master
好处:永远不会把主代码搞崩!
2. 我之前用到分支的地方
创建 smf 分支提交代码
推送 git push origin smf
后来删掉它 git branch -D smf
这些全是 branch 功能。
👉删除 smf 分支前,用 smf 推送,然后在云端合并”!
1. 不在主分支 master 上直接改
2. 新开分支 smf 写代码
3. 推送 smf 到云端
4. 网页上合并到 master
这样 master 永远安全、稳定
3. 最常用的 3 条命令(背会就行)
git branch # 看有哪些分支
git branch dev # 创建 dev 分支
git branch -D dev # 删除 dev 分支
git checkout dev # (dev为分支名)
关键好处
保留所有 git 提交历史,不是单纯拷文件
不用给 Jetson 配置 GitLab 账号、网络权限
全程离线打包,靠一个文件中转,最安全稳定

2308

被折叠的 条评论
为什么被折叠?



