目录
一、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是一种分布式版本控制系统,广泛用于软件开发中跟踪文件变化。它允许多个开发者同时合作,记录文件的修改历史。他具有一下几个特点:
版本控制:Git可以跟踪文件的变化历史,开发者可以随时查看和恢复到先前的版本。这有助于管理项目的演进,并促进团队成员之间的协作。
分布式:与集中式版本控制系统不同,Git是分布式的,意味着每个开发者都在本地拥有完整的代码库副本。这使得可以离线工作,并且大多数操作都可以在本地进行,提高了效率。
分支与合并:Git允许开发者创建分支,即独立的开发线,用于开发新功能或修复bug,而不影响主代码库。开发完成后,可以将分支合并回主分支,实现变更的无缝集成。
远程仓库:Git支持远程仓库,可通过GitHub、GitLab、Bitbucket等平台进行托管。开发者可以推送本地的变更到远程仓库,并拉取其他人的更新,实现团队间高效的协作。
工作流程: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