Linux基础之git与调试工具gdb

news2025/1/13 7:34:18

目录

一、git的简单介绍和使用方法

1.1 git的介绍

1.2 git的使用方法

1.2.1 三板斧之git add

1.2.2 三板斧之git commit

1.2.3 三板斧之git push

二、gdb的介绍和一些基本使用方法

2.1 背景介绍

2.2 基本的使用方法


一、git的简单介绍和使用方法

1.1 git的介绍

       Git是一种分布式版本控制系统,广泛用于软件开发中跟踪文件变化。它允许多个开发者同时合作,记录文件的修改历史。他具有一下几个特点:

  1. 版本控制:Git可以跟踪文件的变化历史,开发者可以随时查看和恢复到先前的版本。这有助于管理项目的演进,并促进团队成员之间的协作。

  2. 分布式:与集中式版本控制系统不同,Git是分布式的,意味着每个开发者都在本地拥有完整的代码库副本。这使得可以离线工作,并且大多数操作都可以在本地进行,提高了效率。

  3. 分支与合并:Git允许开发者创建分支,即独立的开发线,用于开发新功能或修复bug,而不影响主代码库。开发完成后,可以将分支合并回主分支,实现变更的无缝集成。

  4. 远程仓库:Git支持远程仓库,可通过GitHub、GitLab、Bitbucket等平台进行托管。开发者可以推送本地的变更到远程仓库,并拉取其他人的更新,实现团队间高效的协作。

  5. 工作流程:Git支持多种工作流程,如集中式、特性分支、Gitflow等,使团队可以根据项目需求和结构选择适合的工作流程。这种灵活性使Git适用于不同规模和类型的项目。

       总的来说,Git是一个强大的版本控制和协作工具,提供了能够优化开发流程、保障代码变更完整性和可追溯性的功能。

1.2 git的使用方法

       在使用git之前呢,你得先确保自己有一个远程仓库,没有得话可以去gitee上建立一个,我这里就用gitee进行举例。
       创建好仓库后我们先将仓库克隆到本地来,使用指令:

git clone + 仓库链接

       克隆好之后,你会出现类似于我这样的一个目录:

      有了仓库之后,我就要来讲git中比较实用的三板斧操作了。

1.2.1 三板斧之git add

       首先我们随意的创建一个文件然后写点东西进去,我就写个hello world吧(可以直接在你的克隆的仓库目录下写,等会就不需要移动文件了)。然后使用指令:

git add + 文件名 或者 .

将你指定的文件,或者当前目录下的新文件,添加到本地仓库中去。
那怎么去看我们是否添加成功呢,这里有条指令可以让我们观看本地仓库的状态。

git status  (查看本地仓库的状态)


通过指令我们可以看到我们的本地仓库多了一个新文件test.c

1.2.2 三板斧之git commit

       这个时候文件还在我们的本地仓库,那怎么将其同步到我们的远程仓库中去呢,首先得先使用这里的指令。

git commit -m + "日志"

这里记住:日志一定不要乱写!!
因为面试官是用可能去看你的日志的,要是你一通乱写,那岂不是很尴尬。

这个指令主要是提交改动到本地。

1.2.3 三板斧之git push

这最后一招,才是将我们的代码同步到我们的远程仓库上。指令:

git push

需要填入用户名密码. 同步成功后, 刷新 Gitee页面就能看到代码改动了。

提交成功。

在这里我在补充两个指令:

git log (查看日志)

git pull(同步远端和本地仓库)

二、gdb的介绍和一些基本使用方法

2.1 背景介绍

  • 程序的发布方式有两种,debug模式和release模式。
  • Linux gcc/g++出来的二进制程序,默认是release模式。
  • 如果一份代码要被调试,那这份代码的发布模式一定得是debug的。
  • 要使用gdb调试,必须在源代码生成二进制程序的时候, 加上 -g 选项。

2.2 基本的使用方法

开始调试:gdb + 调试文件名
退出: ctrl + d 或 quit

  •  list/l 行号:显示binFile源代码,接着上次的位置往下列,每次列10行。

  • list/l 函数名:列出某个函数的源代码。

  • r或run:运行程序。

  • n 或 next:单条执行。(相当于VS中的逐过程调试 即F10)

  • s或step:进入函数调用(相当于VS中的逐语句调试 即F11)

  • break(b) 行号:在某一行设置断点

  • break 函数名:在某个函数开头设置断点

  • info break :查看断点信息。

  • finish:执行到当前函数返回,然后挺下来等待命令

  • print(p):打印表达式的值,通过表达式可以修改变量的值或者调用函数

  • p 变量:打印变量值。

  • set var:修改变量的值

  • continue(或c):从当前位置开始连续而非单步执行程序

  • run(或r):从开始连续而非单步执行程序

  • delete breakpoints:删除所有断点

  • delete breakpoints n:删除序号为n的断点
    (在gdb中,断点是有编号的,删除要根据编号删除)

  • disable breakpoints:禁用断点

  • enable breakpoints:启用断点

  • info(或i) breakpoints:参看当前设置了哪些断点

  • display 变量名:跟踪查看一个变量,每次停下来都显示它的值

  • undisplay:取消对先前设置的那些变量的跟踪

  • until X行号:跳至X行

  • breaktrace(或bt):查看各级函数调用及参数

  • info(i) locals:查看当前栈帧局部变量的值

  • quit:退出gdb

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NSSCTF中的web

目录 [第五空间 2021]WebFTP [LitCTF 2023]PHP是世界上最好的语言!! [SWPUCTF 2021 新生赛]PseudoProtocols [LitCTF 2023]导弹迷踪 [NISACTF 2022]easyssrf [第五空间 2021]WebFTP 1.进入页面,发现是登录页面,想到 弱口令&…

JAVA学习笔记(第三周)

文章目录 继承概述使用场景继承的特点子类继承的内容成员变量访问特点成员方法访问特点方法的重写构造方法this super 多态多态的表现形式多态的前提成员变量和方法调用instanceof优势弊端 包包名的规则全类名final常量 权限修饰符代码块 继承 概述 继承就是子类继承父类的特征…

【图书推荐】《从零开始大模型开发与微调:基于PyTorch与ChatGLM》

本书目的 本书详解大模型基本理论、算法、程序实现与应用实战,揭示ChatGLM大模型开发与微调技术,紧跟大模型技术发展趋势,利用ChatGLM大模型完成毕业论文和研究课题。 本书案例 基于PyTorch卷积层的MNIST分类实战PyTorch数据处理与模型展示…

Linux与windows网络管理

文章目录 一、TCP/IP1.1、TCP/IP概念TCP/IP是什么TCP/IP的作用TCP/IP的特点TCP/IP的工作原理 1.2、TCP/IP网络发展史1.3、OSI网络模型1.4、TCP/IP网络模型1.5、linux中配置网络网络配置文件位置DNS配置文件主机名配置文件常用网络查看命令 1.6、windows中配置网络CMD中网络常用…

初识C语言——第十一天

操作符&#xff1a; 1. 算数操作符&#xff1a; - * / % 2. 移位操作符&#xff1a; >> &#xff08;右移&#xff09; << &#xff08;左移&#xff09; 移动的是二进制位 例如&#xff1a; int ba<<1; 3. 位操作符&#xff1a; & 按位与 | 按位…

设置默认表空间和重命名

目录 设置默认表空间 创建的临时表空间 tspace4 修改为默认临时表空间 创建的永久性表空间 tspace3 修改为默认永久表空间 重命名表空间 将表空间 tspace3 修改为 tspace3_1 Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/13520…

Marin说PCB之国产电源芯片方案 ---STC2620Q

随着小米加入的造车大家庭&#xff0c;让这个本来就卷的要死的造车大家庭更加卷了。随之带来的蝴蝶效应就是江湖上各个造成门派都开始了降本方案的浪潮啊&#xff0c;开始打响价格战了。各家的新能源车企也是不得不开始启动了降本方案的计划了&#xff0c;为了应对降价的浪潮。…

程序员的实用神器——高效软件开发的秘诀

目录 前言 一、自动化测试工具 &#xff08;一&#xff09;常用的自动化测试工具 &#xff08;二&#xff09;编写有效的测试用例的建议 &#xff08;三&#xff09;提高代码覆盖率的方法 二、持续集成/持续部署 &#xff08;一&#xff09;持续集成&#xff08;CI&#…

QT实战百度语音识别

前言 随着学习的深入&#xff0c;感觉愈发缺乏满足感。刚好看到微信语音转文字的功能&#xff0c;经网上查询&#xff0c;发现可以使用 QT 百度语音识别技术 实现这一功能。当然&#xff0c;由于使用的 QT 和 百度语音识别&#xff0c;那么看不到一些具体的底层实现&#xff…

04-28 周日 FastAPI Post请求同时传递文件和普通参数

04-28 周日 FastAPI Post请求同时传递文件和普通参数 时间版本修改人描述04-28 周日V0.1宋全恒新建文档2024年5月6日14:20:05V1.0宋全恒完成文档的传递 简介 由于在重构FastBuild的时候&#xff0c;为了支持TLS是否启用&#xff0c;在接口中需要同时传递文件参数和其他参数&am…

SQL查询语句(三)范围查找关键字

在上一篇文章中&#xff0c;我们介绍了SQL语句中&#xff0c;逻辑关键字的作用&#xff0c;并举例演示了如何用逻辑关键字来组合WHERE子句。在文章的末尾我们提到了两个用于范围查找的关键字IN和BETWEEN。这两个关键字都可以与NOT关键字灵活组合&#xff0c;起到对字句结果取反…

【算法】滑动窗口——将x减到0的最小操作数

本节博客主要是讲的我解“将x减到0的最小操作数”这道题的思路历程&#xff0c;从最开始的想法到代码提交的详细记录&#xff0c;有需要借鉴即可。 目录 1.题目2.代码示例3.细节3.1left越界3.2特殊情况 4.总结 1.题目 题目链接&#xff1a;LINK 看题目意思是就是给你一个数X&…

Redis(主从复制搭建)

文章目录 1.主从复制示意图2.搭建一主多从1.搭建规划三台机器&#xff08;一主二从&#xff09;2.将两台从Redis服务都按照同样的方式配置&#xff08;可以理解为Redis初始化&#xff09;1.安装Redis1.yum安装gcc2.查看gcc版本3.将redis6.2.6上传到/opt目录下4.进入/opt目录下然…

VueReal将在Display Week上推出microLED创新技术

公司展示将microLED从晶圆转移到背板的“改变游戏规则”的平台 在2024年显示周&#xff08;5月12日至16日在圣何塞举行&#xff09;上&#xff0c;VueReal将展示其MicroSolid打印平台&#xff0c;并展示其在推动微LED显示器和其他微型半导体器件在智能手机显示器和AR/VR解决方案…

Linux进程间通信:system V共享内存

目录 一、什么是共享内存 1.1创建共享内存 1.2释放共享内存 1.2.1shmctl 1.2.2shmat 1.2.3 shmdt 二、共享内存的实现及使用 2.1ShmClient 2.2Shm_Server 2.3Fifo.hpp 2.4Comm.hpp 一、什么是共享内存 标准系统V也叫system V的本地通信方式一般有三种&#xff1a; …

论文阅读】 ICCV-2021-3D Local Convolutional Neural Networks for Gait Recognition

motivation :现有方法方法无法准确定位身体部位&#xff0c;不同的身体部位可以出现在同一个条纹(如手臂和躯干)&#xff0c;一个部分可以出现在不同帧(如手)的不同条纹上。其次&#xff0c;不同的身体部位具有不同的尺度&#xff0c;即使是不同帧中的同一部分也可以出现在不同…

2024041702-计算机操作系统 - 死锁

计算机操作系统 - 死锁 计算机操作系统 - 死锁 必要条件处理方法鸵鸟策略死锁检测与死锁恢复 1. 每种类型一个资源的死锁检测2. 每种类型多个资源的死锁检测3. 死锁恢复 死锁预防 1. 破坏互斥条件2. 破坏占有和等待条件3. 破坏不可抢占条件4. 破坏环路等待 死锁避免 1. 安全状态…

06-beanFactoryPostProcessor的执行

文章目录 invokeBeanFactoryPostProcessors(beanFactory)invokeBeanFactoryPostProcessors(beanFactory, getBeanFactoryPostProcessors())invokeBeanDefinitionRegistryPostProcessors(currentRegistryProcessors, registry);invokeBeanFactoryPostProcessors(regularPostProc…

docker desktop实战部署oracle篇

1、前言 oracle数据库官方已提供现成的镜像&#xff0c;可以直接拿来部署了。 由于项目中需要使用oracle数据库的分表功能&#xff0c;之前安装的是standard版本&#xff0c;无奈只能重新安装。网上查了一番&#xff0c;使用的方法都比较传统老旧&#xff1a;下载安装包手动安…

Ps中 饱和度 和 自然饱和度 的区别?

1.饱和度&#xff08;Saturation&#xff09;&#xff1a;在Photoshop中&#xff0c;饱和度是一个全局性调整&#xff0c;它影响图像中所有颜色的鲜艳程度。当你增加饱和度时&#xff0c;所有的颜色都会变得更浓烈、更鲜艳&#xff1b;相反&#xff0c;减小饱和度会使图像整体变…