Linux 学习

Git

只提交部分修改

使用 git add 将想要提交更改的文件添加到暂存区然后再用 git commit 提交即可在 vscode 中可以通过直接点击文件后面的暂存更改按钮来将文件的修改添加到暂存区这两个方式是等价的

如果只想提交某个文件的部分修改可以使用 git add -p可以在随后唤起的交互模式中选择要添加到暂存区的修改

修改 commit 记录的描述

使用 git commit --amend 即可修改上一次 commit 记录的描述

如果需要修改倒数第 n 个 commit 记录的描述则需要通过 git rebase -i 先变基到 HEAD~(n+1)然后在打开的文本编辑器内找到你想要修改的 commit将行首的 pick 改为 reword这将再次打开一个文本编辑器对选定的 commit 描述进行修改最后通过 git rebase --continue 回到 HEAD这可能会造成远程仓库的历史记录与本地不一致

APT

APT 换源后出现由于没有公钥无法验证下列签名

root@ub22:/# apt-get update
...
获取:4 http://mirrors.aliyun.com/kali kali-rolling InRelease [41.5 kB]
...
错误:4 http://mirrors.aliyun.com/kali kali-rolling InRelease
  由于没有公钥, 无法验证下列签名: NO_PUBKEY xxxxxxxx
...
正在读取软件包列表... 完成
W: GPG 错误: http://mirrors.aliyun.com/kali kali-rolling InRelease: 由于没有公钥, 无法验证下列签名:  NO_PUBKEY xxxxxxxx
E: 仓库 "http://mirrors.aliyun.com/kali kali-rolling InRelease" 没有数字签名.
N: 无法安全地用该源进行更新, 所以默认禁用该源.
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节.

解决方案sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv xxxxxxxxxxxxxxxx 替换成报错中的实际公钥

解决上述报错后可能会在 apt-get update 的时候得到报错

W: http://mirrors.aliyun.com/kali/dists/kali-rolling/InRelease: 密钥存储在过时的 trusted.gpg 密钥环中(/etc/apt/trusted.gpg), 请参见 apt-key(8) 的 DEPRECATION 一节以了解详情.

需要将密钥从旧的 apt 密钥工具转换为新的 apt 可信密钥格式

可以先尝试使用 apt-key list gazebo在我遇到的情况下这将返回与上面的警告类似但更详细的报错信息

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).

使用 sudo cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d 即可