开发板推送代码到gitlab仓库

摘要

一次性讲透、直接能用的 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 仓库)

  1. 进入你的工程根目录(已经是 git 仓库的文件夹)
cd 你的工程路径
git log --oneline # 查看历史记录
# 如果需要恢复到之前版本,就需要重置
git reset --softgit diff --staged --name-only  # 查看暂存区,是否为自己修改提交的部分

在这里插入图片描述

在这里插入图片描述

  1. 执行打包(只打 master 分支完整历史)
git bundle create my_code.bundle master  # 打包
git bundle verify my_code.bundle # 查看是否打包成功

执行完生成文件:my_code.bundle
这个文件包含:
所有提交记录
所有分支
所有代码
完整 Git 历史
和仓库一模一样。
在这里插入图片描述

  1. 把这个 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工程目录下

  1. 从 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 账号、网络权限
全程离线打包,靠一个文件中转,最安全稳定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值