Git 清理无用Commit 和 Tags

因为自己手残导致Git库内添加一些奇怪的东西,还很占地方,于是就有了这篇文章。

Error:请谨慎对待每一次Commit

Git清理全部Commit

缺点就是你提交记录和文件历史全没了,但是简单高效粗暴~

#切换分支
git checkout --orphan latest_branch

#添加所有文件
git add -A

#提交分支
git commit -m "提交说明"

#删除主分支
git branch -D master

#重名当前分支为master(主分支)
git branch -m master

#提交到远程仓库(强制覆盖)
git push -f origin master

Git删除指定文件及其历史记录

Error:注意:文件路径千万不要以/开头!否则就不是相对路径了!
上条警告是来自于被舍友rm -rf /*的某人的悲鸣~

Linux 终端代理加速访问

可以用命令<code>curl cip.cc</code>检查终端是否处于代理状态可以用命令curl cip.cc检查终端是否处于代理状态

info:Git走代理的方法:传送门

直接在终端运行下面的内容。

#走HTTP代理,用这个
export http_proxy="http://localhost:port"
export https_proxy="http://localhost:port"

#走socket5协议,用这个
export http_proxy="socks5://127.0.0.1:1080"
export https_proxy="socks5://127.0.0.1:1080"

#或者直接All in
export ALL_PROXY="socks5://127.0.0.1:1080"
info:如果嫌每次都需要执行命令麻烦,可以添加到.bashrc.zshrc文件中,使用source命令刷新下配置文件就可以生效了。

更新软件包提示 W: GPG error 没有公钥,无法验证签名

今天更新NanoPi neo2 软件包的时候,突然提示GPG error没有公钥,无法验证签名。具体报错如下:

报错信息报错信息

Reading package lists... Done
W: GPG error: http://mirrors.ustc.edu.cn xenial InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://mirrors.ustc.edu.cn xenial-backports InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://mirrors.ustc.edu.cn xenial-proposed InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://mirrors.ustc.edu.cn xenial-security InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32
W: GPG error: http://mirrors.ustc.edu.cn xenial-updates InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

翻译过来就是GPG错误,没有公钥,无法验证签名。

Hockeypuck OpenPGP keyserver,这个网站可以获取缺失的公钥。

命令如下(后面的40976EAF437D05B5是你具体报错时提示缺失公钥的部分):

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5

黄色部分提示获取成功黄色部分提示获取成功

再次更新,没有报错了再次更新,没有报错了

Tomcat源码架构笔记(servlet请求处理链路篇)

上一篇文章中,我们在debug模式下完整的跟踪程序走了一遍,对Tomcat start启动阶段所做的操作有了大概的了解。

这回,我们一起看看,Tomcat服务器接受到一个请求到处理这个请求之间经历了怎样的过程。


Servlet请求处理链路分析

  • 一个servlet如何被tomcat处理的?
  • servlet请求 -> 可以处理当前servlet请求的servlet实例 -> servlet.service()

Servlet请求处理链路和URL的对应关系Servlet请求处理链路和URL的对应关系

上一篇文章中我们知道Acceptor线程主要负责监听Socket嵌套字请求,并将其转给sekector(选择器)。

而poller线程,则负责检查sekector(选择器)中是否有数据到来的channel,如果有就进行处理。

NIO模型NIO模型

所以Servlet请求处理链路中最重要的就是poller线程,他负责控制这一系列的操作。