Linux基础之git与调试工具gdb

目录

一、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.rhkb.cn/news/323964.html

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

相关文章

Kubernetes——基础认识

一、简介 1.Kubernetes是什么 Kubernetes 是一个全新的基于容器技术的分布式架构解决方案,是 Google 开源的一个容器集群管理系统,Kubernetes 简称 K8S。 Kubernetes 是一个一站式的完备的分布式系统开发和支撑平台,更是一个开放平台&#x…

249 基于matlab的MED、OMEDA、MOMEDA、MCKD信号处理方法

基于matlab的MED、OMEDA、MOMEDA、MCKD信号处理方法。最小熵反褶积(MED),最优最小熵反卷积调整卷积 (OMEDA),多点最优最小熵解卷积调整(Multipoint Optimal Minimum Entropy Deconvolution Adjusted,MOMEDA),最大相关峭…

el-select选项框内容过长

利用popper-class实现选项框内容过长&#xff0c;截取显示功能&#xff1a; <el-select popper-class"popper-class" :popper-append-to-body"false" v-model"value" placeholder"请选择"><el-optionv-for"item in opt…

Cocos creator实现《战机长空》关卡本地存储功能

Cocos creator实现《战机长空》关卡本地存储功能 Cocos creator在开放小游戏过程中&#xff0c;经常会出现设置关卡&#xff0c;这里记录一下关卡数据本地存储功能。 一、关卡设置数据 假如我们有关卡数据如下&#xff0c; let settings [ { level: 1, // 第1关 score: 0,…

14_Scala面向对象编程_属性

文章目录 属性1.类中属性声明2.系统默认赋值3.BeanProperty4.整体代码如下 属性 1.类中属性声明 // 1.给Scala声明属性&#xff1b;var name :String "zhangsan"val age :Int 302.系统默认赋值 scala由于初始化变量必须赋值&#xff0c;为了解决此问题可以采…

Docker部署nginx并启用https加密连接

前言 在当今互联网时代&#xff0c;安全性成为越来越重要的议题。随着网络攻击日益猖獗&#xff0c;保护数据和通信的安全性变得至关重要。在这种背景下&#xff0c;对于在 Docker 中运行 Nginx 是否需要使用 HTTPS 这一问题&#xff0c;我们需要考虑到网络安全的重要性以及 H…

ssrf漏洞学习——基础知识

一、SSRF是什么&#xff1f; SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。 一般情况下&#xff0c;SSRF攻击的目标是从外网无法访问的内部系统。&#xff08;正是因为它是由服务端发起的&#xff0c;所以它能…

爬虫-无限debug场景 解决方式

解决无限debug 场景1 1. 鼠标右键 选择 continue to here&#xff08;此处不停留&#xff09;2. 鼠标右键 选择 edite breakpoint 设置 10 保证条件不成立 这行永远不执行3.方法置空 1. 方法调用加断点2. 控制台 setInterval function name() {}4. 替换文件 5. hoo…

数据结构与算法学习笔记九-二叉树的链式存储表示法和实现(C语言)

目录 前言 1.二叉树的链式存储 2.二叉链表的表示和实现 1.定义 2.创建 4.中序遍历二叉树 5.后序遍历二叉树 6.后序遍历二叉树 7.完整代码 前言 这篇博客主要介绍二叉树的链式存储结构。 1.二叉树的链式存储 上篇文章中介绍了二叉树的顺序存储结构&#xff0c;在最坏的…

鸿蒙内核源码分析(文件句柄篇) | 你为什么叫句柄

句柄 | handle int open(const char* pathname,int flags); ssize_t read(int fd, void *buf, size_t count); ssize_t write(int fd, const void *buf, size_t count); int close(int fd);只要写过应用程序代码操作过文件不会陌生这几个函数,文件操作的几个关键步骤嘛,跟把大…

WMS仓储管理系统库存分类的详细讲解

在当今日益复杂和快速变化的商业环境中&#xff0c;仓库管理成为了一个企业不可或缺的关键环节。WMS仓储管理系统解决方案凭借其自动化和信息化的优势&#xff0c;为企业带来了革命性的改变&#xff0c;特别是在库存分类方面。接下来&#xff0c;我们将深入探讨WMS仓储管理系统…

一篇文章,系统性聊聊Java注解

你好&#xff01; 这类系统性聊聊***知识点的文章&#xff0c;是希望给大家带来对某个技术的全貌认识&#xff0c;如果大家喜欢&#xff0c;后续可以陆续更新此系列 下面&#xff0c;开始今天的分享 在之前&#xff0c;我们已经分享过注解相关的三个面试题&#xff0c; 今天的…

基于SSM的文化遗产的保护与旅游开发系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的文化遗产的保护与旅游开发系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;…

Docker部署Metabase

文章目录 Docker安装MetabaseCentOS7安装Docker获取最新的 Docker 镜像启动Metabase容器在Metabase初始化时查看日志访问Metabase Metabase 的 ClickHouse 驱动程序安装环境简介删除容器创建容器下载click house驱动放入驱动重启容器将元数据库连接到 ClickHouse报错解决 Docke…

Linux 安装JDK和Idea

安装JDK 下载安装包 下载地址&#xff1a; Java Downloads | Oracle (1) 使用xshell 上传JDK到虚拟机 (2) 移动JDK 包到/opt/environment cd ~ cd /opt sudo mkdir environment # 在 /opt下创建一个environment文件夹 ls# 复制JDK包dao /opt/environment下 cd 下载 ls jd…

26 JavaScript学习:JSON和void

JSON 英文全称 JavaScript Object NotationJSON 是一种轻量级的数据交换格式。JSON是独立的语言JSON 易于理解。 JSON 实例 简单的 JSON 字符串实例: "{\"name\": \"Alice\", \"age\": 25, \"city\": \"San Francisco\&…

如何使git提交的时候忽略一些特殊文件?

认识.gitignore文件 在生成远程仓库的时候我们会看到这样一个选项&#xff1a; 这个.gitignore文件有啥用呢&#xff1f; .gotignore文件是Git版本控制系统中的一个特殊文件。用来指定哪些文件或者目录不被Git追踪或者提交到版本库中。也就意味着&#xff0c;如果我们有一些文…

网络相关笔记

IPv4地址 IPv4地址通常以“点分十进制”形式书写&#xff0c;即四个0-255之间的十进制数&#xff0c;各数之间用英文句点&#xff08;.&#xff09;分隔&#xff0c;例如&#xff1a;192.0.2.1。总共32位的地址空间可以表示大约42亿个不同的地址。 IPv4地址结构包括&#xff…

wordpress外贸建站公司歪建站新版网站上线

wordpress外贸建站公司 歪猫建站 歪猫WordPress外贸建站&#xff0c;专业从事WordPress多语言外贸小语种网站建设与外贸网站海个推广、Google SEO搜索引擎优化等服务。 https://www.waimaoyes.com/dongguan

使用Python实现DataFrame中奇数列与偶数列的位置调换

目录 一、引言 二、背景知识 三、问题描述 四、解决方案 五、案例分析与代码实现 六、技术细节与注意事项 七、扩展与应用 八、封装为函数 九、错误处理与健壮性 十、性能优化 十一、总结与展望 一、引言 在数据处理和分析中&#xff0c;数据框&#xff08;DataFra…