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

Linux权限和开发工具(3)

在这里插入图片描述

文章目录

    • 1. 简单理解版本控制器Git
      • 1. 如何理解版本控制
    • 2. Git的操作
      • 2.1 Git安装
      • 2.2 Git提交身份
      • 2.3 Git提交命令
      • 2.4 Git版本管理
      • 2.5 Git下的同步
  • 3. gdb命令
    • 3.1解决gdb的难用问题
    • 3.2 gdb/cgdb的使用

1. 简单理解版本控制器Git

1. 如何理解版本控制

我们在做项目的时候可能会遇到对自己的修改不满意,想要回到上一个版本时候,就需要对自己完成一个阶段,对当前阶段进行备份,就方便我们后续进行版本回退了

将这些版本放到文件夹中就叫做仓库 所以仓库本身就是文件夹

那如果我们将这些步骤写成一个自动化程序(软件),就叫做版本控制器

其原理如下:

image-20241109220701973

  1. git是一个底层的版本控制器软件
  2. GitHub和gitee基于gitee的网站或平台

2. Git的操作

2.1 Git安装

git version查看是否按照git

sudo yum install -y git安装git

2.2 Git提交身份

首次使用时可能会进行报错:

a2b94f71-b93e-487c-b54d-3d0402a5f0fd

这里直接运行下面两条指令进行配置用户名和邮箱:

git config --global user.email "your_email@example.com"
git config --global user.name "Your Name"

2.3 Git提交命令

git 的操作将变化的部分提交上去,而并不是全部提交上去

  1. git clone 仓库链接将远端仓库拉取到本地
  2. git add 文件名提交文件到缓存区
  3. git commit -m "日志信息"将缓存区提交到gitee上
  4. git status查看缓存区文件

image-20241109225417640

  1. git log可以查看提交的记录信息

  2. git push提交文件到远端仓库

  3. git pull远端仓库和本地仓库进行同步

所以提交步骤如下:

image-20241109231159334

2.4 Git版本管理

git管理只进行源文件的管理,而不是直接将库和临时文件直接提交到gitee上

我们可以用.gitignore文件来忽略这些文件

2.5 Git下的同步

如果我们Linux进行更新,在Windows如果没有进行更新,就会冲突

来提醒本地用户要与远端仓库进行同步了

image-20241109234815243

这就是我们初步了解git的全部内容后续会有更全面的git使用

3. gdb命令

Linux中我们用gcc编译成的程序默认为release并不能直接进行调试

image-20241110000233451

加上-g后的程序可以执行但是文件也会大一些,让生成的程序带上调试信息(debug模式)

程序要调试必须时debug模式

3.1解决gdb的难用问题

其实原本的gdb是非常难用的,因为无法将代码和调试信息同时看到

那么cgdb就可以同时看到了,而且cgdbgdb的使用方法是一样的

3.2 gdb/cgdb的使用

  1. l查看文件内容 l -文件名打开指定文件
  2. 执行命令
    1. r 将程序运行,直到第一个断点处或者直到程序结束 也可以重新运行程序
    2. c 运行到下一个断点处
    3. s 逐语句执行
    4. n 逐过程执行
    5. finish 进入到函数后可以直接跳出函数到下一步
    6. until 行数 可以进行局部区域快速跳转
  3. 短点的指令(断点本质上是将代码进行块级别的划分,以块为区域进行快速定位出问题的区域)
    1. b 文件名:行号/函数名 在指定文件中的行号或者函数名的位置打上断点
    2. b 行号 在打开的文件中指定的行号直接打上断点
    3. info b 查看所以断点位置和编号(gdb如果不退出断点编号递增,退出就重置了)
    4. d 断点编号 可以进行删除断点
    5. disable 断点编号 可以将断点禁用掉
    6. enable 断点编号 将断点重新启用
  4. 监视变量
    1. p 变量 临时查询一个变量的值
    2. display 变量 监视变量数据
    3. undisplay 变量编号 取消监视变量数据
    4. info local 查询当前所有的临时变量的值
    5. watch 变量 当变量的值发生变化的时候进行提醒
  5. set val 修改数据 将变量的值直接更改,并且计算出更改后的运行结果
  6. b 行号 变量 == n 条件断点当变量等于n的时候停止
  7. condition 断点号 变量 = 值n 当程序执行到指定断点号时,只有当x`等于n时,程序才会暂停。
  8. cgdbESC进入代码屏幕 用i可以返回操作屏幕

http://www.kler.cn/a/390918.html

相关文章:

  • 图像处理实验二(Image Understanding and Basic Processing)
  • Unity3D 包体裁剪与优化详解
  • 【系统设计】数据库压缩技术详解:从基础到实践(附Redis内存优化实战案例)
  • vwmare虚拟机繁忙的解决办法
  • vue3+vite 前端打包不缓存配置
  • 客户案例 | 如何利用Ansys工具提供互联系统(以及系统的系统),从而使“软件定义汽车”成为可能
  • 手把手教你30秒下载Typora通用版(mac、win适用)
  • 前端知识点---Javascript中检测数据类型函数总结
  • 解决MAC安装QT启动项目不显示窗口问题
  • Unity导出APK加速与导出失败总结(不定时更新)
  • 丹摩征文活动|智谱AI引领是实现文本可视化 - CogVideoX-2b 部署与使用
  • 一篇文章学会-图标组件库的搭建
  • Mac电脑如何解压rar压缩包
  • Python爬虫 | 什么是反爬虫技术与机制
  • Unity类银河战士恶魔城学习总结(P120 BUff Item Effect各种增益效果)
  • 迈入国际舞台,AORO M8防爆手机获国际IECEx、欧盟ATEX防爆认证
  • 人工智能的现状、应用与面临的挑战
  • 基于Zynq FPGA对雷龙SD NAND的测试
  • AI教育革命:个性化学习的新篇章
  • 注意力机制的目的:理解语义;编码器嵌入高纬空间计算;注意力得分“得到S*V”;解码器掩码和交叉注意力层用于训练;最终的编码器和输出实现大模型
  • 开源 AI 智能名片 S2B2C 商城小程序在微商内容展示中的应用与价值
  • 面试击穿mysql
  • 京东商品详情,Python爬虫的“闪电战”
  • vue3中 ref和reactive的区别
  • RNN(循环神经网络)详解
  • 【独立同分布】