Linux权限和开发工具(3)

news/2024/11/14 14:21:27/

在这里插入图片描述

文章目录

    • 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.ppmy.cn/news/1546948.html

相关文章

Electron 项目中杀掉进程的不同方式

Electron 项目中杀掉进程的不同方式 随着现代应用程序功能的不断扩展,用户对应用程序的控制需求也在不断增加。在 Electron 项目中,能够灵活地管理和控制进程是提升用户体验的重要一环。 无论是关闭不必要的后台任务,还是在特定条件下终止某…

通俗易懂:@Configuration 和 @Component 注解的区别

文章目录 Component:通用的组件注解什么情况下用 Component?注意: Configuration:专门用来定义配置的类为什么使用 Configuration? Configuration 和 Component 的区别举个例子 总结推荐阅读文章 在 Spring 中&#xf…

huawei初级网络工程师综合实验

本章为总结练习,只提供思路以及验证结果,和比较有难度的命令 并且在我的其他章节对本练习中出现的所有都有介绍这里就不重复解释了 拓扑图以及实验要求: sw1 充当2层交换机 sw-2(undo portswitch) 充当三册交换机 R…

RoseTTAFold QueryEncoding类解读

QueryEncoding 类用于在输入张量 x 上添加一种查询序列的特殊编码。这里的查询编码将第一个序列标记为查询序列,并将其与其他序列区分开。以下是代码中的细节和每一步的作用。 源码: class QueryEncoding(nn.Module):def __init__(self, d_model):supe…

JavaScript代理實現Web開發和安全流覽

在Web 開發中,JavaScript代理(JS 代理)是指一種允許開發人員攔截和重新定義對對象執行的操作的機制。JavaScript 代理充當對象的包裝器,攔截某些操作(如屬性訪問、方法調用等),開發人員可以控制…

2020年美国总统大选数据分析与模型预测

数据集取自:2020年🇺🇸🇺🇸美国大选数据集 - Heywhale.com 前言 对2020年美国总统大选数据的深入分析,提供各州和县层面的投票情况及选民行为的可视化展示。数据预处理阶段将涉及对异常值的处理&#xff0…

有了Makefile, CMake存在的意义是什么?如何借助Makefile构建ObjC语言编译环境?如何获取编译器的版本号?

有了Makefile, CMake存在的意义是什么? Makefile规定了编译脚本的基本长相,但随着跨平台需求越来越大,一份Makefile想要跨平台给Windows/Linux/Mac等等平台越来越难,需要维护的工作量越来越大。CMake定义了makefile中跨平台需要的公用组成&a…

安卓APP又可以在电脑上运行了:微软和鹅厂合作,Windows上运行安卓APP!

手机App如何才能在PC端使用?想必这个问题曾困扰过部分用户,基于操作系统差异和应用开发的兼容性等问题,要实现这个愿望看似遥不可及,好在技术的发展也带来了一些互通解决方案,比如在 PC 端安装安卓模拟器。用户只需下载…