git && gdb/cgdb

一.git

1.什么是git?

git是一个版本控制器软件,可以帮助用户管理一个文件的历史版本,让你随时可以查找到最初的一版或者更改过n次的版本,随着用户需要管理的文件的增多,需要建一个文件夹统一进行管理,这个文件夹就叫做仓库,git最初是用在本地管理的,后来为了数据安全,开了一个linux机器,用户这时候就可以在远端创建一个仓库,将自己的仓库复制到远端,以此保证数据的安全,同时,这样也可以让一个团队进行协作开发:可以在同一个仓库建立不同的文件夹,各自在自己的文件夹下工作,上传至同一个仓库,这样的远端平台现在主要有Gitee和GitHub,需要注意的是git是去中心分布式的版本控制,所以在两台电脑上安装git即可实现仓库的互传

2.git操作

a.add

b.git操作详解说明图例

c.实操

1.clone

2.add - commit - push

2.windows-clone

3.pull

4.git log

5.git sstatus

6.  .gitignore

需要忽略的特定后缀的文件列表

二.gdb/cgdb

1.什么是gdb/cgdb

Linux下的调试软件

2.gdb/cgdb的使用

a.调试模式

程序要调试,必须是debug模式!,也就是说编译时要加-g选项

b.调试文件

调试的文件是可执行文件,不是.c文件!!!

c.命令

退出:quit

打断点:b+行号

查看断点属性:info b

删除断点:d + 断点对应编号
运行(run):r
查看代码(list):l   回车会继续显示下面的代码
逐过程(next):n
逐语句(step):s
gdb会自动记录最新的一条输入指令,直接回车即可执行,也就是说逐语句后回车即可继续逐语句

查看栈帧:bt

执行到当前函数结束,然后停止:finish

临时查看变量值:p + 变量名

断点使能:enable + 断点编号 

断点失能:disable + 断点编号

运行到下一个断点处(continue):c

执行到第n行:until + 行数

监视变量:display + 变量名

取消监视:undisplay + 编号 

查看当前栈帧所有局部变量值:info locals

监视一个变量的值,如果变化,则暂停执行并通知:watch + 变量名

更改变量值:set var 变量=XXX

条件断点:b + 行号 + 条件  |  b 15 if n==4

已经存在的断点增加触发停止条件:condition + 断点编号 + 条件 | condition 4 n==4

翻阅代码:esc 后用上下键翻阅

i:回到下屏命令行中

<think>我们已知用户遇到了git clone失败的问题,错误是gnutls_handshake() failed。我们已经提供了多种解决方案,包括更新CA证书、切换Git的SSL后端、使用源码包下载等。 现在用户重新给出了原始的Dockerfile命令,可能是希望我们基于这个原始命令进行修改,或者确认之前的解决方案如何整合进去。 根据之前的错误分析,我们可以直接在原始命令前增加修复步骤,或者改用源码包方案。 为了确保命令的健壮性,我们将采用组合方案:首先尝试修复证书问题,如果修复后git克隆仍然失败,则回退到源码包下载。 修改后的命令如下(注意保持原始命令的结构,但加入修复和回退逻辑): </think>### 优化后的构建脚本(解决证书错误问题) ```dockerfile # 修复证书错误并优化构建流程 RUN apt-get update && \ apt-get install -y ca-certificates wget && \ update-ca-certificates --fresh && \ # 优先尝试源码包方案(更快更稳定) ( wget -q https://github.com/c-ares/c-ares/releases/download/cares-1_17_2/c-ares-1.17.2.tar.gz && \ tar -xzf c-ares-1.17.2.tar.gz && \ mv c-ares-1.17.2 c-ares || \ # 回退到Git方案(含证书修复) ( git config --global http.sslCAInfo /etc/ssl/certs/ca-certificates.crt && \ git clone https://github.com/c-ares/c-ares.git ) ) && \ cd c-ares && \ # 确保检出正确版本(兼容源码包无.git情况) [ -d .git ] && git checkout cares-1_17_2 || true && \ ./buildconf && \ ./configure --prefix=/usr --disable-static && \ make -j$(nproc) && \ make install && \ cd .. && \ rm -rf c-ares* ``` #### 关键优化点: 1. **三重安全保障** - 强制更新CA证书(解决`gnutls_handshake`错误核心) - 优先使用源码包(绕过Git协议问题) - 智能回退机制(Git克隆失败自动切换方案) 2. **性能提升措施** - `-j$(nproc)`:多核并行编译加速构建 - `-q`参数:静默模式减少网络日志输出 - 统一清理:`rm -rf c-ares*` 同时清除两种方案残留 3. **版本兼容处理** - `[ -d .git ]`:智能检测Git仓库存在性 - `|| true`:忽略源码包无Git时的checkout错误 #### 验证方法: ```bash # 检查安装结果 ldconfig -p | grep libcares # 验证版本号 ares_getopt --version | grep 1.17.2 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值