在keil中使用git

news/2024/9/22 20:30:27/文章来源:https://www.cnblogs.com/fedorayang/p/18397618

目录
  • 在keil中使用git
  • 搜集官方相关帮助
    • 1.application note
    • 2.软件附带帮助文件
  • 基础准备
    • git命令行
    • MDK版本
  • 操作步骤
    • 1.Abstract(摘要)
    • 2.Introduction
    • 3.Workflows
      • 3.1.Centralized Workflow
    • 4.Using Git with µVision
      • 4.1.Project Files under Version Control
      • 4.2.Files that do not need to be monitored
      • 4.3.Configure µVision’s SVCS
        • 4.3.1.Accessing µVision Project Files
      • 4.4.Version Control of Software Packs
  • Centralized Workflow Example
    • 1.Initialize the Central Repository
    • 2.Clone a Repository from a Server
    • 3.Feature Work
      • Checking the File Status
      • Staging (Adding) an Untracked File
      • Staging Modified Files
      • Removing a Tracked File
      • 处理其他文件
      • Committing Changes
      • Pushing to the Repository
    • 4.Manage Conflicts
      • Rebasing
      • Blaming
      • Finishing the Rebase Process
      • Stashing a Project
      • Pulling the Latest Version from the Server Repository
    • 5.Conclusion
    • 6.Appendix A: Software
    • 7.Appendix B: Links
    • 8.自定义命令

在keil中使用git

在开发keil单片机程序时,使用git进行源代码管理时,大多数时候使用外部工具或命令行进行处理,会来回切换.

其实uVision集成了源代码管理界面接口.

image-20240904064613101

搜集官方相关帮助

1.application note

在Getting Started with MDK Veersion5.pdf中有SVCS描述

image-20240904064915195

如上所示,uVersion还支持svn等其他源代码管理系统模版文件.

点击链接会导航到相关资料:Using Git for Project Management with uVision (arm.com)

image-20240904065312671

这段文字说明了为何需要源代码管理工具,为何源代码管理工具需要用git,下载apnt_279.zip和pdf即可.

2.软件附带帮助文件

image-20240904070313752

基础准备

根据上述资料,即可实现keil中SVCS的配置,但是这里还需要说明,防止不熟悉的人少走弯路.

git命令行

一定要对git命令比较熟悉,为什么需要命令行呢?因为keil uVersion对git的支持不太完善,需要命令行辅助.

快速熟悉git的地方在bilibili,很多视频教程免费,国内速度很快,可以在上面搜索git相关教程.

git官网https://git-scm.com/book/en/v2的Pro Git书籍,这是一本很好的书籍,有中文,英文等多种语言.

image-20240904073123762

git权威指南:https://www.worldhello.net/gotgit/,也是一本非常不错的书籍,如果想更进一步的话.

MDK版本

我试了一下,主观感觉keil里面的SVCS做的不是太完善,感觉上像一个半成品,最主要的原因应该是uVersion的架构导致的,只能定义一些命令,每个相当于批处理脚本,在gui上调用一下.keil也没有太花费心思在上面.选择不同的版本可能会遇到不同的问题.

只要对git命令行比较熟悉,以上搜集到的官方资料就可以解决问题.

操作步骤

主要参考下载的文档<<Using Git for Project Management with µVision.pdf>>

这里目录结构也是按照这个文档进行

1.Abstract(摘要)

说明为什么使用源代码管理工具,为什么使用git.

2.Introduction

简介源代码管理工具和git.

需要已经安装了git,会使用windows cmd.exe命令行终端.

3.Workflows

git最重要的开发方式是利用分支,为了简化这里不使用分支.

git使用范围很广,这里使用最简单直接的方式:centralized workflow.

学习git可以知道有哪些 workflows和怎样使用.

3.1.Centralized Workflow

解释什么是中心化的工作流,使用git实现中心化的工作流比svn等其他工具的好处.

这些内容学习git基础后非常容易理解,建议先看完git视频后,再接下来学习.

列举了使用centralized workflow需要的工作步骤1-4.

4.Using Git with µVision

4.1.Project Files under Version Control

说明哪些文件需要进行版本控制.

4.2.Files that do not need to be monitored

哪些文件不需要版本控制.

4.3.Configure µVision’s SVCS

配置文件如下:

#配置文件
D:\Keil_v5\UV4\GIT.SVCS
#或者
apnt_279\GIT.SVCS

打开对话框SVCS -> Configure Software Version Control…

导入配置文件

image-20240904082944337

点击OK

打开工程后,上述模版文件生成菜单

image-20240904193202235

4.3.1.Accessing µVision Project Files

SVCS菜单项命令作用于光标选择的文件

image-20240904194047167

项目相关文件选择

image-20240904194133761

4.4.Version Control of Software Packs

保存software pack版本信息到Project.uvprojx文件中.

image-20240904194823688

image-20240904195152686

Centralized Workflow Example

例子中心化工作流,如果SVCS菜单没有对应命令,需要使用其他客户端gitGUI或git命令行.

1.Initialize the Central Repository

由于此文档2015年发布第一版本后就没有更新过,不按照教程操作,现在已经有了很好用的windows平台下的命令行客户端.

https://git-scm.com/downloads

image-20240904201418365

image-20240904201520637

#提交检出均不转换
git config --global core.autocrlf false
git init
git add *
git commit -m 'Initial version'
#由于github国内上网不稳定,使用gitee作为托管仓库.
git remote add origin https://gitee.com/fedorayang/apnt_279.git
git push -u origin "master"

2.Clone a Repository from a Server

其他人可以clone服务器上的git仓库,你也可以以后clone

git clone https://gitee.com/fedorayang/apnt_279.git myapnt_279

3.Feature Work

先学好git基础知识,再继续下去,直接看这里会一头雾水.

Checking the File Status

image-20240904204723319

运行菜单命令会出现一个cmd对话框闪烁一下,应该如下设置就不闪烁了.

image-20240904204849209

Staging (Adding) an Untracked File

增加文件

image-20240904205748085

暂存

image-20240904210454046

Staging Modified Files

image-20240904210933829

image-20240904211129833

Removing a Tracked File

由于会导致Keil不稳定,默认模版没有集成git rm命令.

删除文件的步骤

#在uVersion的编辑器中关闭
#项目窗口中移除文件
git rm myfile.c
#如果修改暂存后移除需要使用命令
git rm -f myfile.c

处理其他文件

touch .gitignore
vim .gitignore*.uvguix.*

image-20240904213645755

Committing Changes

image-20240904220541845

image-20240904221042256

Pushing to the Repository

image-20240904221340912

git push origin master
remote: Powered by GITEE.COM [1.1.5]        
remote: Set trace flag 774194a1        
To https://gitee.com/fedorayang/apnt_279.gitcfa1a40..96cbc5b  master -> master

4.Manage Conflicts

Rebasing

rebase把本地提交一个一个的添加到远程仓库的最前面,保证提交历史的顺序递增.

制造两处冲突:

本地

image-20240905065811450

远程

image-20240905065949693

image-20240905070120947

image-20240905070621914

查看冲突文件

image-20240905070818165

image-20240905070856230

Blaming

image-20240905071415376

Finishing the Rebase Process

手动修改冲突,并且add.

git rebase --continue

Stashing a Project

存储当前未完成的修改到一个栈上,切换到其他分支工作,完成其他分支工作后切换会当前分支,再次运用上次当前未完成的修改,继续当前工作.

需要其他命令行配合操作,参考(Pro git ->git 工具->贮藏与清理)

image-20240905074605901

Pulling the Latest Version from the Server Repository

image-20240905074926014

5.Conclusion

需要和其他GUI或命令行配合可以实现其他的工作流.

6.Appendix A: Software

  • 安装windows下的git
  • 对于老版本的MDK,使用这个appnote提供的git模版文件.

Git server space providers: https://github.com/, https://bitbucket.org, https://about.gitlab.com/

现在不止这些了,非常多,国内比较好用的托管仓库有gitee.

自己搭建git仓库可以使用gitea,gitblit等.

8.自定义命令

image-20240905075920580

image-20240905080044839

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/792416.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware ESXi 7.0U3q macOS Unlocker 标准版和厂商定制版更新 OEM BIOS 2.7 支持 Windows Server 2025

VMware ESXi 7.0U3q macOS Unlocker 标准版和厂商定制版更新 OEM BIOS 2.7 支持 Windows Server 2025VMware ESXi 7.0U3q macOS Unlocker 标准版和厂商定制版更新 OEM BIOS 2.7 支持 Windows Server 2025 VMware ESXi 7.0U3q macOS Unlocker & OEM BIOS 2.7 标准版和厂商定…

Nexpose 6.6.267 发布下载,新增功能概览

Nexpose 6.6.267 for Linux & Windows - 漏洞扫描Nexpose 6.6.267 发布下载,新增功能概览 Nexpose 6.6.267 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, release Aug 28, 2024 请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。…

Kettle:HSQLDB使用教程

hsqldb客户端全名:HSQL Database Manager,它是一款能够通过JDBC来访问多种数据库的工具。HSQLDB使用教程 HyperSQL Database(HSQLDB)是一个关系型数据库系统 。它被数据库应用用来开发测试部署。HyperSQL使用Java语言编写,运行在JVM上。它支持数据库访问的JDBC接口。为了使用…

SQLite 由于 mscoree.dll 损坏导致 BadImageFormatException 试图加载格式不正确的程序

本文记录 SQLite.Interop.dll 由于 mscoree.dll 文件损坏而在加载时抛出 BadImageFormatException 错误,错误信息是 0x8007000B 试图加载格式不正确的程序对应的英文错误信息如下 An attempt was made to load a program with an incorrect format. (Exception from HRESULT: …

dotnet 已知问题 警惕 StreamReader 的 EndOfStream 卡住线程

在 dotnet 里面,咱会经常使用 StreamReader 辅助类读取 Stream 的内容,比如按行读取等。如果在判断是否读取完成时,使用的是 StreamReader 的 EndOfStream 属性,则可能破坏原本的异步出让逻辑,导致线程被卡住对于带 UI 的应用程序,如 WPF 等应用来说,如果 UI 线程被卡住…

使用 Dependify 工具探索 .NET 应用程序依赖项

在大型项目中,由于各种组件的复杂性和互连性,管理依赖项可能变得具有挑战性。如果没有适当的工具或文档,可能很难浏览项目并对依赖项做出假设。以下是在大型项目中难以导航项目依赖项的几个原因:复杂性:大型项目通常由许多模块组成。了解这些依赖项如何相互交互可能会让人…

读软件设计的要素01概念

概念1. 概念 1.1. 一个软件,从运行于手机上的最小程序到大型的企业系统,都是由概念组成的,每个概念都是独立的功能单元 1.2. 软件中的可用性问题,经常可以追溯到其底层概念1.2.1. 概念帮助识别软件的不可用性1.3. 概念都是以同样形式在各种软件中重复使用的1.3.1. 将设计分…

关于在powershell与cmd查找vue版本时结果不一致

在powershell中vue版本显示为2.9.6而在Cmd中显示为@vue/cli 5.0.8原因:这是由于博主先前旧版本下载了vue2.9.6,而在卸载旧版本2.9.6时候仅删除了vue与vue.cmd文件 而powershell会先运行vue.ps1(.ps1后缀为powershell文件)来获取你的版本号 解决方案:将vue,vue.cmd,vue.ps1…

LUNARiA

本文同步发布于我的网站也算是头一次在没有任何安利和剧透,仅在看了简介的情况下就直接下单并开始游玩一部gal了。果然,没有给我留下什么遗憾呢。 游玩日志 SKYOUT-FOREVER 《LUNARiA》的背景设定在科技腾飞、算力大幅增长、AI与VR遍及各行各业、一个名为Cozmo的虚拟世界已经…

Comfyui 基础教程(一) —— 本地安装部署

前言 前面一篇文章已经介绍过,ComfyUI 和 Stable Diffusion 的关系。不清楚的朋友,看传送门 Stable Diffusion 小白的入坑铺垫 。 WebUI 以及 ComfyUI 不等于 Stable Diffusion,可以简单粗暴一点的理解为方便运行某些大模型的工具。由于本人在接触过 ComfyUI 之后,就基本放…

337. 打家劫舍 III(leetcode)

https://leetcode.cn/problems/house-robber-iii/description/基础树形dp,要点是f的定义灵神讲的很好:https://www.bilibili.com/video/BV1vu4y1f7dn/?vd_source=1bb76d0400eba0d49ad4c1dd07bc4249 /*** Definition for a binary tree node.* public class TreeNode {* in…

深度学习环境配置(windows 11)

安装Anaconda下载地址运行安装程序,记得要勾选创建系统变量,忘记勾选的请参考anaconda如何配置环境变量。正确配置后,在cmd命令行中输入conda --version后可以输出conda版本信息。附上conda常用操作命令: #创建环境(指定python版本) conda create -n NAME python=*.*#激活…