git用来版本控制,同样是版本控制的软件还有svn等。
git的特定是具有网络功能的版本控制器,开源,client和server是一体的。(去中心化分布式管理)
client和server一体意味着远程仓库和本地仓库是平等地位,远程仓库是特殊的仓库而已,我们的clone远程仓库,某种意义上相当于远程仓库的push的操作
git本质上是操作系统,就像centos是基于Linux开发的,git和github是基于git的网站
git的常用指令
git clone http请求
cp复制文件到仓库中
添加文件到暂存区
git add filename
提交文件到本地仓库
git commit -m "注释"
此时要求设置邮箱和提交名单
这个时候就提交成功了,注意邮箱和gitee账号邮箱一致才有提交的小绿点。
输入指令
git push
填写git的用户和密码就提交成功了
查看历史记录
git log
查看仓库状态
git status
有一个文件未被追踪,用add来添加到追踪状态。
提交文件后再查看仓库状态发现有个文件可以去commit。
gdb调试
输入指令下载gdb,root直接下载,普通用户提权下载
sudo yum install gdb -y
设置好makefile,默认生成debug版本
写好test.c的源码,确认能够正确运行后
进入调试
gdb filename
进入调试页面,注意输入生成文件名而不是源文件
list指令查看源码内容
简写l list n 查看n行附近内容,list funcname 查看函数内容
回车键查看下一行或者下一个函数内容,根据前一条指令确定。
打断点
在第n行打断点
b n
查看断点
info b(information b)
删除断点
d n (delete 断点编号(info b第一列))
当退出gdb后,断点不会保存下来会消失。
r运行程序,遇到断点停止。
n(next)逐过程,s 逐语句
n不进入函数
s进入函数
监视变量的值
p variablename
常显示
dispay variablename
取消常显示
undispay num(最右侧编号的值)
运行到指定行代码
until n
finish 完成当前函数运行。
finish
从一个断点运行到另一个断点
c
禁用/启用断点
disable/enable num
跨文件打断点
在test.i处打上断点
在变量某个特殊值时调试
set var variable=n
查看函数调用堆栈
bt
查看局部变量
info locals