发布时间:2026/7/24 3:43:21
FPGA工程Git常用操作手册 FPGA工程Git常用操作手册一、基础概念1.1 核心区域划分工作区你电脑里能看到的工程文件夹直接修改代码的地方暂存区git add之后文件存入的临时区域用于筛选本次要提交的内容本地仓库git commit之后代码存入的本地版本库所有历史版本都保存在这里远端仓库Gitee/GitHub 上的云端仓库用于备份和多人协作1.2 关键名词解释HEAD指针永远指向你当前所在分支的最新一次本地提交可理解为「当前版本定位标记」master/main主分支用于存放验证通过的稳定版本功能分支基于主分支创建的临时分支用于新增功能调试不影响主分支稳定代码二、首次提交源码流程从0到远端备份适用于仓库初始化后第一次批量提交源码文件。2.1 检查仓库状态在工程任意子目录均可执行查看当前文件状态gitstatus红色文件未跟踪/未暂存的修改绿色文件已进入暂存区等待提交2.2 添加指定文件到暂存区仅添加当前目录下所有 .sv 源码文件gitadd*.sv递归添加工程所有子目录下的 .sv 文件gitadd*.sv注意单引号不可省略作用是让 Git 全局匹配所有层级子目录2.3 撤回暂存区的文件如果误添加了临时文件将其撤出暂存区不删除本地文件gitreset HEAD 文件名2.4 提交到本地仓库填写清晰的提交说明完成本地版本存档gitcommit-m提交说明比如首次提交核心SV源码2.5 推送到远端仓库首次推送第一次推送主分支需要绑定远端跟踪关系gitpush-uorigin master绑定成功后后续推送直接执行即可gitpush三、功能调试分支工作流推荐新增功能、修改逻辑调试时使用完全不影响主分支稳定代码改坏可一键复原。3.1 新建功能分支并自动切换基于当前主分支的稳定版本创建调试分支gitcheckout-b分支名# 示例git checkout -b feat_debug3.2 查看所有分支gitbranch带*标记的为当前所在分支3.3 切换分支# 切回稳定主分支gitcheckout master# 切回功能调试分支gitcheckout feat_debug3.4 功能验证通过合并到主分支# 1. 先切回主分支gitcheckout master# 2. 将调试好的功能分支合并进来gitmerge feat_debug# 3. 同步推送到远端备份gitpush3.5 功能验证失败废弃调试分支# 1. 切回主分支代码自动恢复为稳定版本gitcheckout master# 2. 可选删除废弃的调试分支gitbranch-Dfeat_debug四、代码回退与复原方法4.1 仅修改了文件未执行 git add工作区回退改完发现逻辑错误直接恢复成上一次提交的原样gitrestore 文件名# 示例git restore top.sv4.2 已执行 git add未 commit暂存区回退# 1. 先从暂存区撤回gitreset HEAD 文件名# 2. 再恢复文件内容gitrestore 文件名4.3 已执行 git commit未 push本地提交回退回退到上一个稳定版本丢弃本次错误提交gitreset--hardHEAD^HEAD^代表上一个提交版本HEAD~3代表往前第3个版本也可通过git log --oneline查看提交哈希指定回退到对应版本gitreset--hard版本哈希值五、常用查询命令查看提交历史精简显示gitlog--oneline查看当前分支gitbranch查看远端仓库地址gitremote-v一键跳转到仓库根目录cd$(gitrev-parse --show-toplevel)六、注意事项与避坑指南子目录执行所有 git 命令在工程任意子目录都可执行Git 会自动向上查找.git目录作用范围为整个仓库仅文件路径显示为相对路径。通配符使用不加引号的*.sv仅匹配当前目录加单引号的*.sv由 Git 解析递归匹配所有子目录。临时文件.old后缀、temp_开头的调试文件建议不要提交保持仓库仅存放有效源码。仿真产物建议在仓库根目录添加.gitignore文件忽略.fsdb、.log、编译中间目录等非源码文件保持仓库干净。

相关新闻

2026/7/24 3:43:21

Executor 与 Future、await 关系浅析

Executor 可以想象成 Future 的调度器吗? 是的,非常准确。 Executor(执行器)就是负责管理和轮询(poll)Future 的调度系统。 它维护一个就绪任务队列,当一个 Future 返回 Poll::Pending 时&#…

2026/7/24 3:38:21

ADS7851EVM-PDK评估套件:从硬件解析到软件实操的完整指南

1. 项目概述:深入理解ADS7851EVM-PDK评估套件在精密数据采集系统的设计初期,工程师面临的最大挑战之一,是如何快速、准确地评估一颗关键芯片——模数转换器(ADC)——在实际电路中的真实性能。数据手册上的参数固然重要…

2026/7/24 5:13:30

LLM与AI智能体的本质差异及技术实现

1. LLM与AI智能体的本质差异大语言模型(LLM)和AI智能体(AI Agent)虽然都属于人工智能领域,但它们在功能定位和技术实现上存在根本性差异。LLM本质上是基于海量文本数据训练的概率模型,擅长根据上下文生成连…

2026/7/24 5:13:30

空间站沉浸式娱乐系统设计:挑战与AI解决方案

1. 空间站娱乐系统的特殊挑战与需求在距离地球400公里的轨道上,国际空间站的环境与地面有着天壤之别。微重力、高辐射、有限的计算资源和带宽,这些物理限制为娱乐系统设计带来了独特挑战。但更关键的是心理需求——长期处于封闭狭小空间中的宇航员&#…

2026/7/24 5:13:30

VC++实现XOR 256加密解密:从原理到工程化实践

1. 项目概述:为什么选择VC与XOR 256?在信息安全领域,加密算法是构建数据防线的基石。对于C开发者,尤其是深耕Windows平台的VC程序员来说,实现一个基础的加密功能既是基本功的体现,也是理解更复杂加密体系&a…

2026/7/24 5:13:30

C++反射与序列化集成实践:实现自动类型安全的数据交换

1. 项目概述:当序列化遇见反射在C的世界里,序列化(Serialization)和反射(Reflection)是两个听起来就让人又爱又恨的话题。序列化,简单说就是把一个内存中的对象,转换成一串可以存储或…

2026/7/24 5:08:30

新能源场站数据智能决策系统架构与实践

1. 新能源场站的"数据洪水"困局新能源发电场站正面临着一个看似矛盾的局面:我们拥有海量的气象数据、设备运行参数和电网调度信息,但这些数据非但没有成为决策利器,反而变成了淹没运营团队的"数据洪水"。每天涌入SCADA系…

2026/7/23 12:54:51

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/24 0:03:10

不同品牌斜齿行星减速机如何替换?以PX与PAG系列为例

不同品牌斜齿行星减速机如何替换?以 PX 与 PAG 系列为例 一、系列对应不等于型号直接互换 PX 与 PAG 都属于斜齿、方法兰、输出轴式精密行星减速机,结构形式和应用方向具有对应关系。 原设备使用PX系列时,可以优先从PAG系列中寻找替换型号。但…

2026/7/24 0:03:10

jdk8 把list 扁平化成String 多个以逗号分隔

在 JDK 8 中&#xff0c;将 List 扁平化为以逗号分隔的 String&#xff0c;有几种非常简洁且高效的方法。&#x1f680; 推荐方案&#xff1a;使用 Collectors.joining()这是最标准的 Java 8 写法&#xff0c;适用于 List<String>。javaimport java.util.stream.Collecto…

2026/7/24 0:03:10

java 两个 long id 怎么合并成一个long id 并且不重复

“把两个 Long ID 合并成一个唯一的 Long ID&#xff0c;且保证不重复”这个需求&#xff0c;在 Java 里直接做数学上的“完美合并”是不可能的。因为两个 Long&#xff08;各 64 位&#xff09;要合并成一个 Long&#xff08;64 位&#xff09;&#xff0c;在信息论上是有损压…

2026/7/23 23:42:43

3个高效策略:快速掌握Axure中文界面配置

3个高效策略&#xff1a;快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…