一.版本控制器Git
1.版本控制简单来讲可以对每一份代码版本进行复制保存,保证每一版代码都可查
2.仓库的本质也是一个文件夹
3.git既是一个客户端,也是一个服务器,是一个版本控制器。而gitee和GitHub都是基于git的网站或平台
4.git的基本操作
git clone 仓库网址:将远端仓库添加到本地 .git是隐藏的本地仓库
git add 文件名/.:将指定文件/所有文件添加到仓库里(注意:此时只是添加到了临时的暂存区)
git status:查看当前状态
git log:查看工作日志
git commit:将文件添加到仓库,但是会被拒绝,此时应该采用git commit -m "xxx":写下备注再添加到仓库里
git push :将文件提交/同步到远端仓库里
注:在Linux和Windows都可以向远端添加文件,若是一方已经对文件进行修改并提交,另一方提交时会报错,因为远端仓库里最新的文件没有同步到现在另一方的文件中(因为文件是同一份),此时需要用户根据提示进行操作先同步再提交
5.细节问题
<1>git提交时只会提交变化的部分
<2>git --version可以查看系统内是否安装git,apt install -y git可以进行git安装
<3>git的版本管理只会进行管理源文件
<4>.gitignore可对上传的文件进行过滤(按照特定后缀进行忽略)
<5>git pull:将远端仓库和本地仓库同步,用于处理在你之前有人已提交过已修改的文件的情况
<6>远端仓库相比较于任何一方来说都是最新的
二.gdb
前言:Linux下的程序是无法进行调试,因为gcc/g++默认是release模式,此时需要多加-g选项,调至debug模式,生成可执行程序再添加调试信息
1.gdb 可执行文件:进入调试模式(注意:此时代码区和调试区是不在一个界面的,不方便查看,可以使用cgdb)
2.gdb bin:打断点(注意:只要不退出gdb,断点编号会一直向下累加)
注:断点的本质是将代码进行区块划分,以块为单位快速定位区域
3.在Linux中next/n是逐过程进行调试,step/s是逐语句进行调试(补充:逐过程的话遇见函数调用不会进入函数内部,逐语句可以进入函数内部检查内部执行情况)
4.gdb的命令
b 行号/文件名:行号/文件名:函数 :在xx处打上断点
d 断点编号:删除特定编号的断点
info b:查看断点信息
info locals:查看函数内部所有定义的临时变量(类似VS调试中的监视窗口)
r:运行程序
bt:查看当前函数调用的栈帧
diable 断点编号:关闭特定编号的断点(区别删除) enable 断点编号:打开特定编号的断点
finish:确认问题是否在函数内部
until:局部区域快速执行
display :查看上下文数据 undisplay xx:不想看xx内容
p 变量/表达式:查看变量/表达式
watch:执行监视某个变量/表达式的值
set var:确定问题的原因
condition 断点编号 条件:给特定编号断点处的语句添加执行条件