当前位置: 首页 > news >正文

Vivado版本控制

Vivado版本控制

如果您有幸进入FPGA领域,那么会遇到版本控制问题,本文讲解的是如何用git进行Vivado进行版本控制。

  1. 搭建Git环境

一 首先需要一个git环境,并选择一个托管平台(github,gitlab,gitee)
Git下载地址:
https://git-scm.com/downloadhttps://git-scm.com/download

在这里插入图片描述

2 VIVADO工程代码说明

2.1 工程文件内容
(1)工程文件: .xpr
(2)代码文件 :srcs目录 /srcs/
.xdc (约束文件)
/srcs/.v (工程文件)
/srcs/
.vh (头文件)
/srcs/.hdl (设计文件)
/srcs/
.bd (模块设计文件)
/srcs/*.xci (ip核文件)
.sdk SDK 环境代码, ZYNQ 设计中关于 PS 端的代码
.sim 仿真文件
3)脚本文件:
*.tcl 控制台脚本文件
.bat (.sh) 创建工程脚本文件
2.2 上传内容
Git管理工程文件、代码文件、脚本文件, 三个文件即可。

3 代码管理Git的使用

3.1 创建项目
※上传本地代码文件到git仓库
在代码所在目录下执行下面命令:

$ git init (初始化仓库)
$ git add . (这里的.表示添加所有文件,也可以自定义添加)
$ git commit -m ‘添加的注释信息’// git commit -m ‘原始版本上传’
$ git remote add origin ‘url’  //例如:git remote add origin http://192.168.178.28/cnyt/ococ.git
$ git push -u origin master

注:如果项目为管理员或项目负责人创建,那么则不需要自己创建项目,需要管理员提供项目链接,如:http://192.168.178.28/cnyt_app/ ococ_app.git
那么直接git clone 即可。

$  git clone  http://192.168.178.28/cnyt_app/ococ_app.git

如果拉取某个分支,比如develop分支,可用下面命令。

$ git clone -b develop http://192.168.178.28/cnyt_app/ococ_app.git

3.2 建本地分支并上传分支

A在当前仓库中,使用“git branch”命令加上分支名称即可创建本地分支。

$ git branch develop

这样就建立了一个名为“develop”的新分支。

B 用“git branch”命令可以查看当前所有分支及其状态。

$ git branch

当前有二个分支,master与develop.

其中, “*”号所在的分支就是当前所在的分支,“master”是默认创建的主分支,而“develop”是新建的分支。

C 切换分支
如果需要切换到“develop”分支,可以使用“git checkout”命令进行切换。

$ git checkout develop

切换到“develop”分支后,可以在这个分支上进行代码修改和提交。
D 查看当前分支
如果需要查看当前所处的分支,可以使用“git status”命令查看状态信息。

$ git status

E 从远端目标分支(master) copy代码

$ git pull origin master

F 将本地新建的分支(develop)同步到服务器

$ git push origin develop

这样,在Gitlab端,就看到了分支develop信息。

3.3 克隆项目(下载代码)
开始做一个项目时需要克隆项目代码,用下面命令:

$ git clone http://192.168.178.28/cnyt/Ococ_app.git

或者

$ git clone git@192.168.178.28:cnyt/ ococ_app.git

3.4 切换分支

$ git checkout develop

也可直接克隆分支,如下:

$ git clone -b develop git@192.168.178.28:cnyt/Ococ_app.git

例:`

 git clone -b develop git@192.168.178.28:cnyt/ococ_app.git`

3.5 拉取代码
开发过程中,要拉取(获取)最新代码,用以下命令:

$ git pull

3.6 提交更改

$ git add .     (. 代表所有,也可具体到某一个文件)
$ git commit -m ‘注释’
$ git push

其中,“git add .”命令将所有修改的文件添加到本地提交中,“git commit -m”命令将提交添加到本地仓库,并为其添加一条注释,“git push”命令将本地提交推送到GitLab服务器。

3.7 拉取分支代码
在使用Git进行版本控制的过程中,经常需要拉取某个分支的代码。这里将介绍Git拉取某个分支代码的步骤。
前提条件,新建一个目录,在目录下右键启动git bash
A 初始化

$ git init

B 克隆代码

$ git clone git@192.168.178.28:cnyt/Ococ_app_TSN.git

C获取远程仓库中所有分支信息并保存到本地

$ git fetch

D 查看所有分支信息

$ git branch -a

E 切换到某个分支

$ git checkout < branch_name >

其中,<branch_name>是需要切换到的分支名称。这个命令会将当前分支切换为指定的分支,并更新本地代码。

F 拉取代码

$ git pull origin <branch_name>

其中,<branch_name>是需要拉取的分支名称。该命令会从远程仓库获取最新代码,并将代码合并到本地文件夹中。
G 查看当前状态

$ git status

3.8 打标签
3.8.1 查看标签

$ git tag

3.8.2 打标签
在 Git 中创建附注标签十分简单。 最简单的方式是当你在运行 tag 命令时指定 -a 选项:

$ git tag -a v1.5 -m "my version 1.5"

3.8.3 将标签推送远程仓库

#推送标签v1.5到远程仓库

$ git push origin v1.5

#将所有标签推送到远程仓库

$ git push origin --tags

3.9 Git常用命令

用户名: $ git config user.name 
邮箱:$ git config user.email
密码:$ git config user.password  
用户名:$ git config --global --replace-all user.name "要修改的用户名"
邮箱: $ git config --global --replace-all user.email"要修改的邮箱"
密码:$ git config --global --replace-all user.password "要修改的密码"
查看修改状态:$git status
拉取远程仓库代码:$git pull
克隆远程某分支上的代码:$git clone -b 分支名称 http://xxx.git
合并分支到主分支:$git merge 分支名称
创建新分支:$git branch 新分支名
删除分支:$git branch -D 分支名
查看分支:$git branch
分支切换:$git checkout 分支名称
查看记录:$git log
查看地址:$git remote -v
强制合并代码(用于当前版本和历史提交版本不一致的情况):$git pull origin 分支名--allow-unrelated-histories
本地代码覆盖远程分支代码:$git push -f --set-upstream origin 分支名

相关文章:

  • Android Studio 添加so无法打包进apk问题
  • Go语言实现大模型分词器tokenizer
  • UniApp项目中 使用微信小程序原生语言 进行开发
  • flutter开发实战-实现获取视频的缩略图封面video_thumbnail
  • 主机安全-WindowsLinux的SSH安全加固
  • 解锁 ElasticJob 云原生实践的难题
  • 有权图的最短路径算法
  • 快速筛出EXCEL行中的重复项
  • Android flutter项目 启动优化实战(一)使用benchmark分析项目
  • SQL Server 2016(分离和附加数据库)
  • P1 什么是链表 C语言简单易懂
  • MOS管的静电击穿问题
  • 2023年12月03日新闻简报(国内国际)
  • 机器学习中参数优化或交叉验证评估指标含义
  • ASP.NET Core 使用IIS调试出现505.24错误
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • 2017-08-04 前端日报
  • Apache的80端口被占用以及访问时报错403
  • eclipse(luna)创建web工程
  • extract-text-webpack-plugin用法
  • Gradle 5.0 正式版发布
  • Javascript 原型链
  • JavaScript中的对象个人分享
  • Java读取Properties文件的六种方法
  • JS笔记四:作用域、变量(函数)提升
  • js数组之filter
  • KMP算法及优化
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • React-flux杂记
  • vue-loader 源码解析系列之 selector
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 那些年我们用过的显示性能指标
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解 ...
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 整理一些计算机基础知识!
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #{} 和 ${}区别
  • #{}和${}的区别?
  • #pragma once
  • #pragma预处理命令
  • #Z0458. 树的中心2
  • $(selector).each()和$.each()的区别
  • (C语言)fread与fwrite详解
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (多级缓存)多级缓存
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (一)appium-desktop定位元素原理
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .Net Core和.Net Standard直观理解