前言
记录一些遇到的问题
01. Python 中文乱码 (Git Bash)
win终端正常运行但是在git bash 终端运行py文件中文乱码
在python命令前加 winpty
之后则可以正常显示中文
winpty:一个 Windows 软件包,提供类似于 Unix pty-master 的接口,用于与 Windows 控制台程序通信。
参考文章:
02. .gitignore 测试规则
.gitignore 配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 *.a 表示忽略所有 .a 结尾的文件
!lib.a 表示但lib.a除外
doc/*.txt 表示会忽略doc/notes.txt但不包括 doc/server/arch.txt
/TODO 表示仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
bin/ 表示忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
**/foo: 表示忽略/foo,a/foo,a/b/foo等
a/**/b: 表示忽略a/b, a/x/b,a/x/y/b等
*.log: 表示忽略所有 .log 文件
/mtk/ 表示过滤整个文件夹
*.zip 表示过滤所有.zip文件
--- 需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中,如下: ---
!*.zip
!/mtk/one.txt
唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。为什么要有两种规则呢?
想象一个场景:假如我们只需要管理/mtk/目录中的one.txt文件,
这个目录中的其他文件都不需要管理,那么.gitignore规则应写为:
/mtk/*
!/mtk/one.txt
假设我们只有过滤规则,而没有添加规则,
那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!
注意上面的/mtk/*不能写为/mtk/,否则父目录被前面的规则排除掉了,
one.txt文件虽然加了!过滤规则,也不会生效!
--- 还有一些规则如下: ---
fd1/*
说明:忽略目录 fd1 下的全部内容;
注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;
/fd1/*
说明:忽略根目录下的 /fd1/ 目录的全部内容;
------
/*
!.gitignore
!/fw/
/fw/*
!/fw/bin/
!/fw/sf/
说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;
注意要先对bin/的父目录使用!规则,使其不被排除。
* .gitignor 忽略规则查看
有时候,确定为什么要忽略特定文件可能会很困难,尤其是当你使用多个.gitignore文件或复杂格式时。这是git check-ignore命令的用处,告诉git显示匹配模式的详细信息。
例如,要检查为什么忽略www/yarn.lock文件,可以运行:
git check-ignore -v www/yarn.lock
显示所有被忽略的文件
带有–ignored选项的git status命令显示所有被忽略文件的列表:
git status --ignored
参考文章:
03. Windows 显示"无Internet"
情况:网络显示 “无Internet”,但是可以上网。以下措施没根本解决,最终用微软诊断工具,重置了 以太网
网络(万能的重装大法)…
向 dns.msftncsi.com 发送 DNS 查找请求,DNS 解析为 131.107.255.255
请求 http://www.msftconnecttest.com/connecttest.txt,如果网络正常,则此文件是纯文本文件,仅包含文本 Microsoft Connect Test
如果过程1不正常,则提示“无法访问Internet”,如果1正常2不正常,则提示需要进行身份验证
以下措施没解决问题
估计 DHCP 分配的 DNS 服务器(指向网关)有问题,SwitchHosts 追加本地记录
1 | # Microsoft |
开机自启 SwitchHosts(Win):
快捷方式 复制到 => C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
设置 => 选项 => 启动时隐藏 √
参考文章:
04. Replit Repl ERR_SSL_PROTOCOL_ERROR
未解决,绑自定义域名后,未分配 SSL 证书
Replit 官方论坛:
Replit 官方服务状态:
临时方案:
https://ask.replit.com/t/err-ssl-protocol-error-for-all-sites/27775/4
现在,更改“。” 在 url 中的 repl 名称和用户名之间添加到“–”就可以了。
教程:
05. Terminal 报错: 4294967295
wsl2 报错: [已退出进程,代码为 4294967295 (0xffffffff)]
,终端无法打开
1 | # 管理员身份 PowerShell |
参考:打开wsl,显示 [已退出进程,代码为 4294967295] 的解决方案
后记:未根本解决,根本错误 wsl Error: 0x80040326
,如下
06. wsl2 Error: 0x80040326
无法打开终端,报错:
Error: 0x80040326 Error code: Wsl/Service/0x80040326
解决方法:powershell 管理员模式:wsl --update
参考:
07. crond 致 sendmail 大量进程
阿里云服务器监控显示 CPU 长期高负载,原因:定时任务 crond 引发大量 sendmail 进程
参考:
处理方法:
cron 后面添加
&> /dev/null
或> /dev/null 2>&1
禁止 cron 发用户邮件(未操作)
08. Netlify 自动转换小写 URI
现象:原 URI /tags/Error/
转为 /tags/error/
解决:配置中取消 Pretty URLs
美化 URL 的功能
Site configuration
→Post processing
→Pretty URLs
→ □Enable Pretty URLs
示例:https://app.netlify.com/sites/mycpen-blog/configuration/deploys#pretty-urls
09. pip: command not found
前言:电脑上已装 Python,且在 PATH 内,无法找到 pip 命令
报错:pip: command not found
或 No module named pip
升级 pip:python -m pip install --upgrade pip
办法:执行 python -m ensurepip
来自 chatgpt
在 Windows 系统上,如果您在运行
python.exe
时遇到No module named pip
错误,这通常表示在您的 Python 安装中缺少了pip
模块。pip
是 Python 的包管理工具,通常会随 Python 一起安装。您可以按照以下步骤来解决这个问题:
检查 Python 安装:
首先,请确保您已经正确安装 Python。您可以在命令提示符下运行以下命令来检查 Python 的版本:
1 python --version
检查
pip
是否安装:在较新版本的 Python 中,
pip
已经随 Python 一起安装。您可以尝试运行以下命令来安装 Python 包:
1 python -m ensurepip这将安装
pip
模块。如果pip
已经安装,您可能会看到一条消息指示Requirement already satisfied
.
添加
pip
到系统环境变量:如果
pip
已正确安装,但仍然无法正常使用,可能是因为pip
不在系统的环境变量中。您可以手动将pip
所在的路径添加到系统的 PATH 环境变量中。默认情况下,在 Windows 系统上,
pip
通常安装在Scripts
文件夹中。您可以找到该文件夹的路径,然后将其添加到系统的 PATH 环境变量中。
验证
pip
安装:最后,您可以在命令提示符下运行以下命令来验证
pip
是否安装成功:
1 pip --version如果
pip
安装成功,您应该看到pip
的版本信息,而不再出现No module named pip
错误。通过按照上述步骤操作,您应该能够解决
No module named pip
错误,并成功使用pip
来管理 Python 包。
10. git fetch --unshallow
github action 报错 ! [remote rejected] main -> main (shallow update not allowed)
1 | remote: Powered by GITEE.COM [GNK-6.4] |
解决:git fetch --unshallow
,详见 link
来自 chatgpt
这个错误是因为在尝试将代码推送到 Gitee 仓库时,Gitee 不允许进行浅层更新(shallow update)。浅层更新是指仓库中只包含部分历史记录,而不是完整的历史记录。为了解决这个问题,你可以尝试以下方法:
完整克隆:首先,你可以通过完整克隆仓库的方式来获取完整的历史记录,然后再进行推送。在克隆仓库时,不要使用
--depth
参数,这样可以确保克隆完整的历史记录。
1 git clone https://gitee.com/mycpen/CDN.git移除浅层设置后重新克隆:如果你之前使用了浅层克隆,可以尝试移除浅层设置,然后重新克隆仓库。
1
2 git fetch --unshallow
git clone https://gitee.com/mycpen/CDN.git强制推送:如果你已经有本地完整的历史记录,可以尝试使用强制推送来覆盖远程仓库的内容。
1 git push -f origin main通过以上方法,你应该能够解决 Gitee 仓库不允许浅层更新的问题,并成功将代码推送到 Gitee 仓库中。如果你有任何其他问题或需要进一步帮助,请随时告诉我。