首页
碎碎念
东邻西舍
本站信息
前来吐槽
统计
Search
1
openwrt系统上安装第三方插件
26,757 阅读
2
ubuntu下zerotier的基本使用教程
13,578 阅读
3
给小米R3G更换系统:从padavan刷成openwrt
12,848 阅读
4
openwrt使用第一步:设置上网拨号
10,741 阅读
5
openwrt无线中继功能:实现不插网线就能上网
9,517 阅读
学习点滴
Java
Web前端
Linux
踩坑实录
折腾搞机
关于建站
只言片语
登录
Search
标签搜索
Linux
建站
Java
踩坑实录
Ubuntu
MySQL
折腾搞机
HTML
CSS
MyBatis
Spring
SQL
Nginx
路由器
树莓派
OpenWrt
Maven
Git
Win10
只言片语
知识分子没文化
累计撰写
83
篇文章
累计收到
152
条评论
首页
栏目
学习点滴
Java
Web前端
Linux
踩坑实录
折腾搞机
关于建站
只言片语
页面
碎碎念
东邻西舍
本站信息
前来吐槽
统计
搜索到
23
篇与
的结果
2023-06-25
Thinkbook16+在ubuntu下编译无线网卡驱动、替换Grub的默认主题等等
目录: 一、编译无线网卡驱动 1.1、clone 项目 1.2、安装环境 1.3、编译并加载驱动 二、更换Grub主题 2.1、下载主题文件 2.2、安装主题 2.3、修改启动顺序 三、修复启动项 四、安装搜狗输入法 4.1、添加中文语言支持 4.2、安装搜狗输入法 环境:ubuntu 22.04 一、编译无线网卡驱动 由于 Thinkbook16+ 原装的无线网卡是瑞昱的 RTL8852,装上 ubuntu 22.04 之后会因为没有驱动而无法使用 wifi 功能,这个问题一度困扰了我好长时间,由于没有网线,在此期间只能用手机的 USB 热点共享功能把手机当成 ubuntu 的无线网卡来用。 后来在网上查到一篇关于自己编译 RTL8852 无线网卡驱动的博客:thinkbook14+16+ 安装ubuntu22.04 解决wifi6驱动问题 + 加装完善让笔记本化身完全体,一劳永逸思路_ubuntu wifi6驱动_久日与至的博客-CSDN博客,于是才得以解决此问题。 1.1、clone 项目 驱动项目链接:GitHub - HRex39/rtl8852be: Realtek Linux WLAN Driver for RTL8852BE 根据系统 kernel 的版本选择不同的分支: # kernel < 5.18 选择默认主分支 git clone https://github.com/HRex39/rtl8852be.git # kernel >= 5.18 选择 dev 分支 git clone https://github.com/HRex39/rtl8852be.git -b dev 查看当前 ubuntu 系统内核的方法: uname -srm # 或者 uname -a 1.2、安装环境 进行编译之前需要安装环境: sudo apt update sudo apt install make gcc linux-headers-$(uname -r) build-essential 1.3、编译并加载驱动 编译: cd rtl8852be make -j8 sudo make install 加载驱动: sudo modprobe rtw89pci # 加载驱动 sudo modprobe -r rtw89pci # 卸载驱动 二、更换Grub主题 2.1、下载主题文件 主题文件可以在这里下载: GRUB Themes - Gnome-look.org GRUB Themes - Gnome-look.org (opendesktop.org) 以我下载到的 ubuntu.tar 为例,将其解压到 /boot/grub/themes/ubuntu (或者选择其他目录也行): # 创建目录 mkdir /boot/grub/themes mkdir /boot/grub/themes/ubuntu # 将文件到解压到创建好的目录中 sudo tar -xf ubuntu.tar -C /boot/grub/themes/ubuntu 2.2、安装主题 修改配置文件,编辑 /etc/default/grub 文件 sudo nano /etc/default/grub 找到以 "#GRUB_THEME" 开头的一行,该行用来配置主题文件路径,将其改为 "主题文件路径/theme.txt” : # 没有这一行的话直接新增即可 GRUB_THEME="/boot/grub/themes/ubuntu/theme.txt" 然后更新一下 grub 配置: sudo update-grub 最后重启,开机的时候就能看到效果了。 2.3、修改启动顺序 在 Windows + Linux 双系统的启动项中,如果在 BIOS 中选择的是 ubuntu 的话,开机进入的 grub 启动项选择中 ubuntu 系统是排在第一位的。但在双系统中一般来说都是 windows 用的比较多,所以每次启动都来选择 Windows 启动项的话也是一件挺麻烦的事情,那么可以将 windows 的系统启动项放到第一位,只有需要用到 ubuntu 的时候再去手动选择启动。 需要用到的是 Grub Customizer 这个软件,安装命令: sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt update sudo apt install grub-customizer 安装完成后,在 ubuntu 的应用列表中找到这个软件并启动,软件中会显示出当前所有的启动项。 修改启动顺序的话也很简单,点击选中 windows 启动项,用菜单栏上的箭头给移动上去就可以了。 PS:其实这个软件也可以用来替换主题 Grub 主题 三、修复启动项 这一项希望你用不到 ::(狂汗) 如果在修改启动项的时候,不小心操作失误把启动项修改坏了,造成 ubuntu 系统无法启动的话(我之前就是....),可以安装 boot-repaire 来进行修复: sudo apt-get install boot-repair boot-repaire 使用方法:使用 boot-repair 对 Windows + Ubuntu 双系统引导修复 - schips - 博客园 (cnblogs.com) 四、安装搜狗输入法 4.1、添加中文语言支持 打开 系统设置 -> 区域和语言 -> 管理已安装的语言,在 “语言” tab下点击“添加或删除语言” 弹出“已安装语言”窗口,勾选中文(简体),点击应用 回到“语言支持”窗口,在键盘输入法系统中,选择“fcitx” 注:如果在键盘输入法系统中,没有“fcitx”选项时,需要打开终端手动安装fcitx: sudo apt install fcitx 等安装成功之后再执行上述步骤 最后点击“应用到整个系统”,关闭窗口,重启电脑 4.2、安装搜狗输入法 从 搜狗输入法linux-首页 (sogou.com) 下载适用于 ubuntu 的 deb 安装包,然后用命令行安装(双击也可以安装,但就是少点 Linux 的灵魂): sudo dpkg -i 路径/安装包名 然后安装依赖: sudo apt install libqt5qml5 libqt5quick5 libqt5quickwidgets5 qml-module-qtquick2 sudo apt install libgsettings-qt1 这些依赖非常重要,不安装的话就会出现只能输英文而输不了中文汉字的问题。 以上步骤进行完之后,重启电脑,就可以在 ubuntu 上使用搜狗输入法了。 参考资料: thinkbook14+16+ 安装ubuntu22.04 解决wifi6驱动问题 + 加装完善让笔记本化身完全体,一劳永逸思路_久日与至的博客-CSDN博客 搜狗输入法linux-安装指导 (sogou.com) Grub Customizer首页、文档和下载 - GRUB2 管理器 - OSCHINA - 中文开源技术交流社区
2023年06月25日
1,450 阅读
0 评论
1 点赞
2022-11-23
折腾随身WiFi过程中的亿点点小记(下):Debian部分优化/其他
本篇博客篇幅较长,建议结合目录查看! 目录: 一、Debian 1.1、添加 RNDIS 驱动 1.2、解决Debian 下无法使用 SIM 卡上网的问题 1.3、Debian 连接 WiFi 1.4、解决 “无法安全地用改源进行更新,所以默认禁用该源” 报错 1.5、修改默认网关地址 1.6、安装 xfce 桌面并通过 VNC 访问 1.7、安装蓝牙 二、改装材料尺寸(仅供参考) 一、Debian 1.1、添加 RNDIS 驱动 装好 Debian 之后,插在电脑上用 SSH 是连接不上的,需要配置一下 RNDIS 驱动,在设备管理器中找到这个设备: 右键“更新驱动” -> 选择“浏览我的电脑以查找驱动程序” -> “让我从计算机上的可用驱动程序列表中选取” 选择加载全部,然后左侧选择“Microsoft”,右侧选择“基于远程 NDIS 的 Internet 共享设备” 无视警告,选是: 1.2、解决Debian 下无法使用 SIM 卡上网的问题 给随身 WiFi刷入 Debian 之后,原来的基带也被新系统自带的基带覆盖,所以可能会出现无法使用 SIM 卡上网的问题,要解决的话问题可以这么搞: 从 QPT 备份出来的分区镜像中找到 NON-HLOS.bin 文件,修改后缀格式为 “.img”; 用 DiskGenius 挂载打开这个文件,并复制出来 image 文件夹中的文件,主要是文件名为 “modem” 与 “wcnss” 的十几个文件 用导出的文件替换掉 Debian 系统 /usr/lib/firmware 目录下面的同名文件; 最后重启一遍系统即可 Diskgeniue专业版下载:『DiskGenius v5.4.2.1239汉化版-破解全功能专业版 | 花园博客 (wcstu.cn)』 1.3、Debian 连接 WiFi 随身 WiFi刷好 Debian 之后,默认是开了热点的,所以连接 WiFi 前需要关掉热点: sudo nmcli d disconnect wlan0 然后使用如下命令进入图形化界面配置网络: sudo nmtui 选择要连接的 WiFi 即可。 1.4、解决 “无法安全地用改源进行更新,所以默认禁用该源” 报错 修改源: sudo apt edit-sources # 或者: sudo nano /etc/ 国内软件镜像源: deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main non-free contrib deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main non-free contrib deb https://mirrors.tuna.tsinghua.edu.cn/debian-security/ bullseye-security main deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security/ bullseye-security main deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main non-free contrib deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main non-free contrib deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main non-free contrib deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main non-free contrib 修改完成之后,在执行 “apt update” 命令更新软件源时,可能会报错: 这个问题多数时候可忽略,但是少数情况下就会影响软件的安装,比如安装 xfce 桌面环境时总是会报错导致安装失败,暂时不清楚对其他软件安装有多少影响。 可以看到,报错信息中提示其中一个软件源 “http://repo.mobian-project.org” 有错误,这个是 mobian (就是适配移动端的 debian 系统)的软件源,其位于 /etc/apt/sources.list.d/mobian.list 文件中,但一般修改软件源是修改的 /etc/apt/sources.list 这个文件,所以修改软件源并不能解决这个问题,而且我在国内各个镜像站点也没有查到 miban 的镜像,所以干脆将其注释掉。后来发现还有个有更省事的办法,直接用执行如下命令,注释掉这个源: sudo sed -i '1c # deb http://repo.mobian-project.org/ bullseye main non-free' /etc/apt/sources.list.d/mobian.list 1.5、修改默认网关地址 编辑 “/etc/dnsmasq.conf” 文件,在文件末尾找到如下两行,第一行是地址,修改IP地址的三个部分: 1.6、安装 xfce 桌面并通过 VNC 访问 参考教程:『如何在Debian 9安装VNC | myfreax』 debian安装桌面环境(讲解debian安装kde图形界面) - 长城号 (changchenghao.cn) # 安装 xfce 桌面环境: sudo apt update && sudo apt install xfce4 # 安装字体,否则进去系统之后字体全是方块: sudo apt install ttf-wqy-microhei ttf-wqy-zenhei xfonts-intl-chinese # 安装 VNC: sudo apt install tigervnc-standalone-server 在用户目录 “~/.vnc/” (没有就新建一个)下新建一个配置文件 “config”, sudo mkdir ~/.vnc && sudo nano ~/.vnc/config 用自己熟悉的方式编辑这个文本文件,添加如下内容: geometry=1440x900 localhost=no 保存退出即可,接下来启动 VNC 服务: # 启动 sudo vncserver 控制台会提示:" You will require a password to access your desktops.Would you like to enter a view-only password (y/n)? ",输入 “y” 回车即可按照提示设置密码即可。 启动完成之后使用 VNC Viewer 就用 IP 地址可以连接到随身 WiFi 的 VNC 服务了。 1.7、安装蓝牙 apt install bluetooth 根据这篇博客 『debian下蓝牙适配器的配置和使用 - qiaoqiao2003 - 博客园 (cnblogs.com),研究着玩了一下,随身 WiFi的蓝牙功能是正常的,但是暂时没想到在 Debian 下有什么用...... ::(挖鼻) 二、改装材料尺寸(仅供参考) 改装材料这块我只罗列出我用到的一些,仅供参考,不一定要跟我一样,具体根据自己的情况来选择 散热需要的风扇尺寸 : 2510/3007/3010 风扇金属防护铁网:2.5cm/3cm 固定风扇螺丝尺寸:M2.5 x 18 温控开关:TB02微型温控开关45度常开,KSD9000 到手之后感觉尺寸太大就放弃用了 参考资料: UFI 系列 4G WiFi 棒研究记录 | 泠泫凝的异次元空间 410刷debian避坑指南 来自 Mcitem - 酷安 Debian基础使用 · OpenStick项目 · 看云
2022年11月23日
1,864 阅读
0 评论
2 点赞
2022-11-16
折腾随身WiFi过程中的亿点点小记(上):备份刷机
本篇博客篇幅较长,建议结合目录查看! 目录: 一、驱动与备份工具 二、备份原厂固件 2.1、进入9008 2.2、开始备份固件 2.2.1、Miko 3.2.2、QPT 三、开启 ADB 以及 ROOT 3.1、开启 ADB 功能 3.2、Root 设备 3.3、修改切卡密码 四、备份/恢复基带 4.1、备份 4.2、恢复基带 五、刷机 貌似这东西在去年就有大佬拿来刷机玩了,我是七月初的时候在 B 站上看到关于随身 wifi 的搞机视频,鉴于当时因为疫情快递进不来小区,所以观望了一会,后来疫情好点了买了几个来玩。然后....鸽了几个月才写出来这篇小记::(小乖) 在研究这个东西的过程中,阅读了很多热心大佬写的教程,在此感谢酷安诸多大佬的教程与固件包,RESPECT!!!具体引用到的教程地址都会贴在对应的部分,这些教程集中在酷安的随身 wifi 版块与一些博客中,写的都很不错,但是由于太分散,对于新手来说入门时一脸懵逼完全无处下手(我不信就我一个人这样::(挖鼻)),所以用此篇博客来总结串联一下相关的教程,并结合我瞎捣腾的一点经验对教程中未提到的作出一些补充。 闲言少叙,下面进入正题。 首先,随身 wifi拿到手之后请务必备份!刷机不备份,变砖两行泪!!! 备份全固件!备份分区镜像!备份基带文件! 备份的好处就是可以放心给随身 wifi刷机,完全不用担心随身 wifi变砖的问题,变砖之后恢复备份即可救砖。 一、驱动与备份工具 备份之前需要安装相关的软件环境、驱动等,在这篇博客 『设备刷机需要的软件 | 宁宁's Blog (momoe.ml) 』中介绍得很全面。当然也不需要全部用到,只需要了解这么几个软件即可: MiFlash:用来安装 ADB 驱动 9008 驱动:顾名思义 Miko Service Tool(以下称为 Miko):全备份工具,将所有分区备份为一个 “bin” 格式的文件 “Qualcomm Premium Tool”(以下称为 QPT):备份工具,与上面 Miko 的区别是将分区分别备份为 “img” 、“mbn” 文件 星海SVIP(以下称为星海):备份基带,备份成一个 “qcn” 文件 ARDC: 在电脑上投屏显示安卓系统的屏幕画面。 DiskGeniue Pro:用来编辑修改 “img” 镜像文件 文件下载链接:随身wifi文件 - 123云盘 (123pan.com) 需要注意的是,Miko 与 QPT 安装之后需要再破解激活,具体方法可查看对应安装文件目录下的文本文件。 二、备份原厂固件 2.1、进入9008 备份固件需要随身 wifi在 9008 模式下进行。 9008 模式是高通设备的最底层的联机模式,它相对于 Recovery、Fastboot 和 Android 系统是独立的,在这个模式下可进行救砖、备份等操作,联机后表现为序列端口(COMxx),在设备管理器下的 “端口” 选项中查看: 对于大部分的随身 wifi来说,都有这么一个恢复按钮: 在断电情况下,按住这个按钮将随身 wifi连接到电脑即可进入 9008 模式,这种方法适用于目前市面上能买到的大部分随身 wifi。除此之外还有一种短接引脚的方式也可以进入 9008,但是我查到的方法没有一个统一的答案,所以这种方法也就不再细说。 当然也有办法用 adb 命令进入 9008 模式: adb reboot edl 2.2、开始备份固件 教程:『UFI 系列 4G WiFi 棒研究记录 | 泠泫凝的异次元空间 (lxnchan.cn)』 由于备份软件有两个,所以以下分开来说吧。 2.2.1、Miko 备份: 备份出来的文件是 “.bin” 格式,如果觉得备份文件太大占空间的话可以打包成压缩文件保存,此时文件所占的空间会小很多。 恢复: 3.2.2、QPT 可以将整个固件按分区备份成多个镜像文件,后续进行开ADB(如果随身 wifi默认没有开ADB的话)、修改配置、给 openwrt/Debian 替换基带等操作需要用到其中的镜像文件。 备份: 完成之后窗口左下角会有提示: 恢复: 这个功能一般只用来恢复某个分区而不是整个固件,以 “boot” 分区为例: 同样的,完成之后左下角会提示。 这里说一个大概率会碰到的问题,就是 QPT 或 Miko 会出现如下报错: 这个问题我碰到了好多遍,明明随身 wifi已经在 9008 模式下了,却还是莫名其妙地报错,后来我发现了规律,即在 9008 模式下的随身 wifi不能被软件重复读取,随身 wifi进入 9008 模式之后,被 Miko 读取过一次分区,下次不管是 Miko 还是 QPT 读取分区,必会出现报错。 那么此时只需要拔掉随身 wifi重新进一遍 9008 模式即可,如果这样依然有报错的话,假如之前打开操作过与 ADB 相关的软件,在任务管理器 —> 详细信息中结束掉 “edl” 这个进程,再重进 9008 即可。 PS:貌似报错提示中失败的单词 fail 还是拼错的,拼成了 fial....:@(无奈) 三、开启 ADB 以及 ROOT 3.1、开启 ADB 功能 如果买到手的时候就是开了 ADB 的,那么这个步骤即可跳过。 检查随身 wifi是否开启 ADB 的方法:开机状态下,执行 adb 命令: # 此命令意为查看当前连接 adb 的设备 adb devices 如果设备列表中出现有这样的设备就说明已经开启了 ADB: 否则就是需要手动开启 ADB 功能,手动开启的过程也不难。简单来说,只需要修改 system.img 镜像中的几个文本文件,然后再刷回去即可。当然,在酷安社区中也有人直接刷其它人提供的 system.img 镜像文件,要使用哪种方式请自行甄别。 参考教程:『高通芯片的随身Wi-Fi开启adb 来自 厚德载物HoldZywOo - 酷安 (coolapk.com)』 DiskGenius 专业版下载地址:『DiskGenius v5.4.2.1239汉化版-破解全功能专业版 | 花园博客 (wcstu.cn)』 system.img 来自于之前 QPT 备份的镜像文件,用 DiskGeniue 打开这个 img 文件(把镜像文件拖进窗口打开,或者通过 “磁盘” —> “打开虚拟磁盘文件” 打开),将这三个文本文件右键复制出来: 根目录(点击主分区即可看到):build.prop 根目录:build.prop.bakforspec 子目录 /vendor/Default/system/:build.prop 用文本文件打开,在大概179行的位置添加 “,adb”(逗号是英文逗号,不要打成中文逗号): 然后将改好的文件拖进 DiskGenius 打开的 system.img 镜像文件里面复制替换掉原文件,需要注意的是 DiskGenius 普通版没有该功能,需要专业版。 最后将修改完成的 system.img 镜像文件用 QPT 重新刷入即可完成,刷入方法参考前面 QPT 恢复部分。 3.2、Root 设备 参考教程:『高通骁龙芯片的随身wifi入门刷机教程 来自 伏莱兮浜 - 酷安 (coolapk.com)』 Root 设备是为了备份基带,也可安装 Magisk 相关模块玩免流。这一步需要用到前面备份的 “boot.img” 镜像文件,以及一些 apk 文件,下载地址:随身wifi文件 - 123云盘 (123pan.com)。 修补 boot.img 镜像需要用到 ARDC 操作随身 wifi,打开 ARDC 之前需要关掉后台的 adb 软件,并且在任务管理器中结束掉 adb 进程,否则有可能会连接设备失败。弄好之后接下来按照以下步骤: 连接到随身 wifi之后,首先将 “桌面”、“ES 文件浏览器”、“Magisk” 这几个 apk 文件拖到窗口中安装,等几秒钟安装好之后,点击鼠标右键返回就会弹出主页的选择窗口,“Launcher” 就是刚才安装的桌面,选择始终用这个软件打开主页。 回到桌面之后打开 ES 文件浏览器,进入一个目录进行接下来的操作,以 “下载” 为例(当然也可以是其他目录)。同样的,像安装 apk 一样将之前 QPT 备份的 “boot.img” 拖进来,等几秒之后刷新,文件就被复制到这个目录了; 然后退出 ES 文件管理器,打开 Magisk,点击首页 安装 -> 下一步 -> 选择并修补一个文件 选好刚才上传的 boot.img 文件,并选择 “标准安卓方式”,然后点击 “开始”,等待出现 “All done” 提示出现 此时打开 ES 文件浏览器,可以看到在原来的目录下生成了新的修补好的 boot 镜像文件(为了之后操作方便,可将长按文件将其文件名修改得简单一点)。接下来需要用到 adb 工具,点击 ARDC 标题栏末尾的 “<<” 标记打开自带的 adb工具,在 CMD 字样右侧的输入栏中执行 adb 命令(当然可以用其他的 adb 环境,用这个只是方便而已)。 最后将修补好的文件导出到电脑上,在输入栏中输入如下命令,回车执行,等下方日志提示完成: # “Magisk.ing”与“E:/Download” 按照实际路径来 adb pull /sdcard/Download/magisk.img "E:/Download" 将修补好的 boot.img 镜像文件导出来以后,接下来就简单了,在 9008 模式下用 QPT 把镜像文件重新刷到 boot 分区即可完成。 或者用教程中提到的另外一种方式也行,即在 fastboot 下通过命令行的方式刷入,还是在这个输入栏中执行: # 将随身 wifi重启到 fastboot 下 adb reboot bootloader # 执行刷写 boot 分区的命令, # "E:download/magisk.img"是镜像文件实际的路径,可以通过把文件直接拖入输入框的方式自动生成路径 fastboot flash boot "E:download/magisk.img" 执行之后等待几秒,下方日志提示 Finished 的时候,执行重启命令即可(也可以手动插拔随身 wifi): fastboot reboot 随身 wifi重启进入系统之后打开 Magisk,这一次进入可能得多等待一会,如果首页下方有如下图标说明 root 成功: 3.3、修改切卡密码 其实在自带的安卓系统中,很多设置项都写进了 system.img 镜像中的几个配置文件中,包括切卡密码,主要是镜像中的这几个文本文件: 根目录(点击主分区即可看到):build.prop 根目录:build.prop.bakforspec 子目录 /vendor/Default/system/:build.prop 所以要查看切卡密码的话也很简单,首先用 DiskGeniue 挂载 system.img 镜像文件,找到这三个文件中的任意一个,复制出来后用文本文件打开,搜索 “persist.ufi.ft.simswitchpword” 属性即可,等号后面的值就是当前切卡密码: 要修改的话将这三个文件的该属性值都修改掉,然后替换掉 system.img 镜像中原来的文件,再用 QPT 刷回去即可。 或将随身 wifi重启到 fastboot 模式下用命令行刷入: # 将随身 wifi重启到 fastboot 下 adb reboot bootloader # 执行刷写 boot 分区的命令, # system.img 换成实际路径,可以通过把文件直接过来方式自动生成 fastboot flash system system.img 这就是修改切卡密码的办法,如果是其他设置项的话也是同理。设置项命名虽然都是英文,但基本能明白个大概的意思....吧::(狗头)::(狗头) 四、备份/恢复基带 备份基带使用星海这个软件。 参考教程:『随身wifi先机W001和先机003mb备份与刷机恢复基带流程 来自 UTF16 - 酷安 (coolapk.com)』 备份操作进行之前,先用 ARDC 连接随身 wifi打开 Magisk。 4.1、备份 需要注意的是,在最后一步执行备份 QCN 的操作时,弹出窗口选好基带文件保存位置后,当左边提示 “连接手机...” 的时候,随身 wifi端将会弹出 “Shell 申请获取超级用户” 的提示,选择 “允许”。如果没来得及点允许的话,在 Magisk 里面重新给 Shell 赋予 root 权限,然后再操作一遍即可。 4.2、恢复基带 首先用命令将随身 wifi重启到 fastboot 模式(或者用 “搞机助手/随身wifi助手”): adb reboot bootloader 恢复之前,需要先将原有的基带擦除: 然后将随身 wifi重启进入系统,接着如下步骤恢复即可: 五、刷机 随身 wifi自带安卓系统,如果不使用自带的 esim 套餐,也不用 Magisk 玩免流的话,那可以刷 Debian/openwrt 系统玩一玩。 Debian/openwrt 源于 HandsomeHacker 大佬的 『OpenStick Project · GitHub』、『HandsomeMod · GitHub』 项目,在此向大佬致敬!!其官方 wiki 地址为:『OpenStick项目 · 看云 (kancloud.cn)』。后续也有酷安的其他的热心大佬根据此项目编译了不同版本的系统固件,在酷安的随身 wifi 话题下能找到很多。 这里以酷安 苏苏小亮亮 编译的固件为例,来说说如何刷机。 固件发布地址:『来自 苏苏小亮亮 - 酷安 (coolapk.com)』,下载地址:ufi_rom - 123云盘 (123pan.com) 相对于之前的备份操作,刷机反而是最容易的。刷机只需要使随身 wifi进入 “fastboot” 模式(在 adb 窗口运行 “adb reboot bootloader” 命令或者使用 “搞机助手/随身 wifi 助手” 这样的工具),然后运行刷机包目录下的刷机脚本 “flash.bat” (Linux 系统执行 “flash.sh” ),最后按照窗口中的提示操作即可刷机。 刷完机之后一般会自动重启,如果没有重启的话手动插拔一下。并且,安装完之后最好用 passwd + 用户名 改一下密码。 这个 Debian 系统连接 ssh 的地址是 192.168.68.1,用户名是 “root/user“,密码是“1”;openwrt 系统首页地址为 192.168.1.1,用户名为 “root”,无密码。需要说明的是, 这两组账户名与密码不一定适合于其他人编译的固件,不同的大佬编译的固件的账号密码是不同的,具体请参考其固件说明。 除此之外,还有一种情况,就是刷机包中只提供了 boot.img 与 roofs.img 这两个镜像,那么这个时候可以用上之前的刷机包,在其目录下用这两个文件替换同名文件,然后执行 flash.bat 刷机脚本就行了。当然前提是使用的 boot.img 文件与随身 wifi是匹配的,否则就会变砖,这一点需要注意。 文件下载:随身wifi文件 - 123云盘 (123pan.com) 参考资料: OpenStick Project · GitHub OpenStick项目 · 看云 (kancloud.cn) UFI 系列 4G WiFi 棒研究记录 | 泠泫凝的异次元空间 (lxnchan.cn) 高通骁龙芯片的随身wifi入门刷机教程 来自 伏莱兮浜 - 酷安 (coolapk.com) 随身wifi先机W001和先机003mb备份与刷机恢复基带流程 来自 UTF16 - 酷安 (coolapk.com) 设备刷机需要的软件 | 宁宁's Blog (momoe.ml)
2022年11月16日
9,223 阅读
6 评论
3 点赞
2021-12-11
常用的一些Nginx配置
目录: 1、监听端口 2、日志功能 2.1、访问日志 2.2、错误日志 3、配置域名 4、静态资源 5、重定向 5.1、网站根目录重定向 5.2、特定目录重定向 6、反向代理 7、负载均衡 8、SSL配置 1、监听端口 server { # 用于HTTP协议 listen 80; # 用于HTTPS协议 listen 443 ssl; # 用于HTTP2 listen 443 ssl http2; # 使用IPv6监听80端口 listen [::]:80; # 仅使用IPv6 listen [::]:80 ipv6only=on; } 2、日志功能 Nginx的日志分为两种:access_log (访问日志)和 error_log(错误日志)。 对于日志的格式,Nginx提供了一种名为 combine 的格式,如果没有明确指定日志格式则默认使用该格式。 如果不使用 combine 格式的话,可以使用 log_format 指令来自定义,其具体用法参考Nginx日志配置详解或者官方文档:HttpLog模块-Nginx中文文档。 2.1、访问日志 访问日志主要记录客户端的请求,客户端向Nginx服务器发起的每一次请求都记录在这里。客户端IP,浏览器信息,referer,请求处理时间,请求URL等都可以在访问日志中得到。 server { # 访问日志文件的写入位置,相对或绝对路径 access_log /path/to/file.log; # 选择访问日志功能的开启(on)或关闭(off) access_log on; } 2.2、错误日志 错误日志记录服务器和请求处理过程中的错误信息。 server{ # 错误日志的写入位置 error_log logs/error.log error; # 错误日志的级别,分为 debug, info, notice, warn, error, crit, alert,emerg,其取值范围是按紧急程度从低到高排列 # 只有日志的错误级别等于或高于level指定的值才会写入错误日志中。默认值是error error_log file [level]; } 3、配置域名 server { # 监听domain.com server_name domain.com; # 监听多个域名 server_name domain.com www.domain.com; # 监听所有域名 server_name *.domain.com; # 监听所有顶级域名 server_name domain.*; # 监听未指定的主机名(比如侦听IP地址本身) server_name ""; } 4、静态资源 server { listen 80; server_name domain.com; location / { # 设置网站的根目录 root /path/to/website; } } 5、重定向 5.1、网站根目录重定向 server { listen 80; server_name www.domain.com; # 将 www.domain.com 进行301重定向,跳转至 http://domain.com$request_uri return 301 http://domain.com$request_uri; } 5.2、特定目录重定向 server { listen 80; server_name www.domain.com; # 将链接 http://www.domain.com/redirect-url 进行301重定向,跳转到http://otherdomain.com location /redirect-url { return 301 http://otherdomain.com; } } 如将 domain.com 永久重定向到 www.domain.com: server { listen 80; server_name domain.com; return 301 http://www.$host$request_uri; } 6、反向代理 反向代理 - 维基百科,自由的百科全书 (wikipedia.org) Reverse proxy - Wikipedia server { listen 80; server_name domain.com; # 对特定主机的3000端口进行反向代理 location / { proxy_pass http://0.0.0.0:3000; } } 7、负载均衡 负载均衡 - 维基百科,自由的百科全书 (wikipedia.org) Load balancing (computing) - Wikipedia upstream node_js { server 0.0.0.0:3000; server 0.0.0.0:4000; server 123.131.121.122; } server { listen 80; server_name domain.com; location / { proxy_pass http://node_js; } } 8、SSL配置 server { listen 443 ssl; server_name domain.com; ssl on; # 证书文件,格式不一定都是pem,还可能是其他格式 ssl_certificate /path/to/cert.pem; # 秘钥文件,格式不一定都是pem,还可能是其他格式 ssl_certificate_key /path/to/privatekey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_timeout 1h; ssl_session_cache shared:SSL:50m; add_header Strict-Transport-Security max-age=15768000; } # 将HTTP永久重定向到HTTPS server { listen 80; server_name domain.com; return 301 https://$host$request_uri; } 部分内容转载修改自: Nginx Cheatsheet (hashnode.dev) Nginx日志配置详解_biubiuli的博客-CSDN博客_nginx 日志配置
2021年12月11日
1,449 阅读
0 评论
0 点赞
2021-09-14
目前最流行的版本控制软件:Git的基本使用
前排提示: 本篇博客篇幅较长,建议结合目录查看! 目录: 写在前面 1、关于版本控制系统 定义 版本控制的必要性: 常见的版本控制系统 2、Git与Github 0x01.安装Git 0x02.Github中的一些基本概念 Repository Issue Star Fork Pull Request Watch Wiki Gist 0x03.添加SSH key 0x04.克隆仓库 0x05.初始化仓库 0x06.提交修改 0x07.分支操作 查看分支 建立新分支 切换分支 建立并切换到新分支 推送本地分支到远程仓库 合并分支 删除分支 重命名分支 0x08.标签操作 附注标签 轻量标签 切换标签 推送标签 删除标签 查看所有标签 给提交打标签 写在前面 1、关于版本控制系统 定义 版本控制(Version control)是维护项目的标准作法,能追踪项目从诞生一直到定案的过程。此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一程序文件都得到同步,记录项目内各个模块的改动历程,并为每次改动都编上序号。 一种简单的版本控制形式如下:工程的初代版本为“1.0”,当做了第一次改变后,版本等级改为“1.1”,以此类推。因此,版本控制能提供给开发者将项目恢复到之前任一状态的选择权,这种选择权在设计过程进入死胡同时特别重要。 版本控制的必要性: 常会利用版本控制来追踪维护源代码、文件以及配置文件等的改动,并且提供控制这些改动控制权的程序; 有时候,一个程序同时存有两个以上的版本,例如:在一个稳定版本中程序错误已经被修正、但没有加入新功能;在另一个开发版本则有新的功能正在开发、也有新的错误待解决,这使得同时间需要不同的版本; 此外,为了找出只存在于某一特定版本中(由于修正了某些问题、或新加功能所导致)的程序错误,或找出程序错误出现的版本,开发者也需要比对不同版本的代码以找出问题的位置。 常见的版本控制系统 集中式版本控制系统:由一台或多台主计算机组成中心服务器,所有业务单元和项目版本库都集中存储在这个中心服务器上,开发时,要先从中央服务器取得项目最新的版本,一次开发完毕之后,再将工作量推送给中央服务器。就像是一个图书馆,如果要改一本书的内容,则需要把书先从图书馆借出来,然后修改,改完之后再放回图书馆。 因此,集中式版本控制系统最的大缺点就是中央服务器出了问题,所有人都没法工作了。 常见的集中式版本控制系统有SVN、CVS等。 分布式版本控制系统:分布式版本系统没有绝对的中央服务器,每个人的电脑上都是一个完整的版本库,多个人进行协同工作时,只需将自己的修改与其他人的修改进行交换即可 和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,其中一个人的电脑坏了不要紧,从其他人那里复制一个就可以了。 Git就是常见的分布式版本控制系统之一,也是目前最流行的版本控制系统。 2、Git与Github 准确地说,Git与Github根本不是同一个概念。 Git是指由Linus(就是那位二十多年前徒手撸出Linux内核的大佬)编写的分布式版本控制系统,于2005年以GPL发布。最初目的是为了更好地管理Linux内核开发。 自2002年以来,Linus一直使用BitKeeper作为Linux内核主要的版本控制系统以维护代码。在Linux社区中,主张应该使用开放源代码的软件来作为Linux内核的版本控制系统。Linus曾考虑过采用现成软件作为版本控制系统(例如Monotone),但这些软件都存在一些问题,特别是性能不佳。 2005年,Linux社区中的安德鲁·垂鸠写了一个可以连接BitKeeper的存储库的简单程序,BitKeeper著作权拥有者拉里·麦沃伊便认为安德鲁·垂鸠对BitKeeper内部使用的协议进行了逆向工程,决定收回无偿使用BitKeeper的许可。Linux内核开发团队与BitMover公司进行磋商无果后,Linus决定自行开发版本控制系统以替代BitKeeper,在十天的时间编写出git第一个版本。于是,世界上最流行的版本控制系统就这么戏剧式地诞生了。 而GitHub是通过Git进行版本控制的软件源代码托管服务平台,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、P. J. Hyett和Thomas Preston-Werner使用Ruby on Rails编写而成,于2007年10月1日开始开发。beta版本开始上线于2008年2月,4月份正式上线。这是他们的logo,名字叫Octocat: 截止到2020年1月,GitHub已经有超过4000万注册用户和1.9亿代码库(包括至少2800万开源代码库),事实上已经成为了世界上最大的代码存放网站和开源社区,国内很多人戏称为“全球最大同性交友网站”。 2018年6月4日晚,微软宣布以75亿美元的股票收购GitHub。 Github服务器在国外,处于半被墙的状态,有时正常访问,有时又打不开。与之类似的代码托管平台Gitee可以看做是国内版的Github,缺点是开源项目不如Github丰富,当然,由于在访问时速度更快,更适合国内用户托管代码。而且,部分开源项目是同时托管在这两个平台上的,所以碰到无法打开的Github项目时,在Gitee上找找也许会有惊喜。 0x01.安装Git Git在全平台均可使用。 Git官网:Git (git-scm.com) 官方中文文档:Git - Book (git-scm.com) Windows系统Git安装包下载链接:Git - Downloads Linux系统安装Git:Git - Download for Linux and Unix Mac系统安装Git:Git - Download for macOS 安装完成之后在控制台中输入git,如果出现如下输出说明安装成功: 前面提到过,Git只是一个分布式版本管理软件,每个人的计算机都是一份完整的版本库,对这份版本库进行修改之后,将每个人的修改进行合并。但是如果不在同一个内网中,合并修改就会变得困难。此时也需要一个中央服务器来辅助进行代码的合并。这也就是Github、Gitee、Gitlab等平台最基本的作用。 因此,我们还需要注册一个Github/Gitee账号,将我们的代码托管到平台上面(从某种角度上将它看成一个专门存放代码的云盘也未尝不可)。Github注册账号及用户界面介绍可以参考这篇文章:从0开始学习 GitHub 系列之「加入 GitHub」 (qq.com),本篇博客不再介绍。 0x02.Github中的一些基本概念 Repository 仓库,即项目,要在GitHub上开源一个项目,那就必须要新建一个Repository。 Issue 问题的意思,举个例子,比如开源的项目,别人发现项目中有bug,或者哪些地方做的不够好,他就可以提个Issue,即问题,提的问题多了,也就是 Issues ,然后开发者看到了这些问题就可以去逐个修复,修复ok了就可以一个个的Close掉。 Star 就是给项目点赞,这个star的含金量还是挺高的。 Fork 这个可以翻译成分叉,你想在某个开源项目的基础上做些改进,然后应用到自己的项目中,这个时候就可以Fork这个项目,与此同时你的GitHub主页上就多了一个项目,只不过这个项目是基于这个开源项目(本质上是在原有项目的基础上新建了一个分支)。而你就可以随心所欲的去改进这个项目了,丝毫不会影响原有项目的代码与结构。 Pull Request 发起请求,这个其实是基于Fork的,还是上面那个例子,如果你在项目基础上做了改进,就可以把自己的改进合并到原有项目里,这个时候你就可以发起一个Pull Request(简称PR),原有项目开发者会收到这个请求,这个时候他会review代码,并且测试觉得OK了,就会接受PR,这个时候新的改进会被合并进原有项目。 Watch 可以理解为观察,如果Watch了某个项目,以后如果这个项目有更新,都会收到关于这个项目的通知提醒。 Wiki 一般来说,项目的主页有README文件基本就够了,但是有些时候项目的一些用法很复杂,就需要有详细的说明文档给使用者。这个时候就可以用Wiki,使用markdown语法即可进行编写。 Gist 如果没有项目可以开源,只是单纯的想分享一些代码片段,那这个时候Gist就派上用场了。 0x03.添加SSH key 当我们对代码进行提交时,Github/Gitee要怎么知道是我们提交的代码,而不是别人提交的呢,所以就需要进行授权来确认我们的身份。 Github和Gitee服务器可以选择使用SSH公钥或GPG公钥来进行授权,这里采用SSH授权方式,提交代码之前需要先添加SSH key配置。大概步骤就是先在本地生成SSH key,然后将本地生成的SSH key添加到Github或者Gitee上。 SSH(Secure Shell)是一种建立在应用层基础上的安全协议,一般用于远程登录会话和其他网络服务。由于在传输过程中对数据进行了加密和压缩,因此可以有效防止远程管理过程中的“中间人攻击”,传输速度也会更快,还能够防止”DNS欺骗“和”IP欺骗“等。 生成SSH密钥: ssh-keygen -t rsa 这句命令的意思是用RSA算法生成密钥(windows系统最好在Git Bash下执行,cmd终端可能并没有安装ssh),执行后出来三次提示均按回车,命令执行完会生成id_rsa(密钥)和id_rsa.pub(公钥)这两个文件。Linux/Mac系统在~/.ssh下,windows系统在C:\Users\用户名\.ssh(用户名是自己电脑的用户名)下,需要设置显示隐藏文件选项才能看到。 将id_rsa.pub用文本编辑器打开,复制里面的内容。 添加公钥到Github/Gitee: 进入Github/Gitee的设置界面,在左侧选项列表找到SSH keys选项 将刚才复制的公钥粘贴上去,公钥标题可写可不写,然后保存,这样就完成了公钥的添加。 0x04.克隆仓库 说来惭愧,这是我接触到Github之后很长时间内最常用的操作(因为就只会这一个操作)。命令很简单: git clone [仓库链接] 这个命令的作用就是从Github上下载别人仓库的项目文件,可能是从clone直接音译过来的原因,这个操作一般都称克隆,而不叫下载。 克隆操作只需要有远程仓库链接即可,不需要Github账户也可以进行。克隆完之后项目文件的位置就是执行命令时所处的文件夹。 远程仓库链接在项目主页就可以找到: 0x05.初始化仓库 所谓初始化本地仓库,个人理解就是向本地的项目根目录文件夹中加入一些Git配置文件,使其可以被Git识别以进行版本控制,因为项目文件夹是不能直接进行版本控制的。 初始化本地仓库命令很简单,进入本地项目文件夹(或者用空文件夹),在该目录下执行: git init 也可以在命令后面加入文件夹路径,将指定文件夹初始化成本地仓库: git init [项目文件夹名路径] 项目初始化成功会有Initialized empty Git repository in xxxxxxx的提示,原项目文件夹中多出一个.git隐藏文件夹。此时初始化的本地项目还没有关联到远程仓库。 当然,有本地仓库还不行,我们本意是要把本地仓库推送到远程仓库,因此,还需要在Github/Gitee上建一个远程仓库。点击网站右上角加号,找到“New Repository(新建仓库)” 上图最后三项是用来初始化远程仓库的,如果这三项都不选就创建了仓库,就会提示用命令行来手动初始化远程仓库(所以建议对命令行不感冒的同学直接使用自带的初始化操作)。 来记录一下用命令行手动初始化远程仓库的步骤: 先在本地初始化好的Git项目中新建一个README.md项目说明文件(也可以是别的文件名) 在项目目录下执行命令与远程仓库进行关联: git remote add origin [远程仓库链接] 依次执行以下命令向暂存区加入修改文件,并编辑提交信息 git add README.md # 引号中就是本次提交信息,可修改 git commit -m "first commit" 向远程仓库推送本地仓库文件: Gitee只执行这条命令即可推送: git push -u origin master 从2020年10月开始,Github的默认分支从master变成了main,因此还需要将本地默认主分支重命名为main才能推送成功: git branch -M main git push -u origin main 如果不重命名主分支,就会出现“error: src refspec main does not match any,error: failed to push some refs to ..”的错误。 上述命令执行完之后,再刷新远程仓库界面,就进入了初始化好的远程仓库: 对于都已经初始化过的本地空仓库与远程仓库,使其建立关联可以这样做: # 先关联远程仓库 git remote add origin [仓库远程链接] # 再将远程仓库内容拉取到本地 git pull origin master 0x06.提交修改 所谓修改,就是相对于上次提交之后项目发生的改变(项目文件的增、删、改)。 其中要涉及到push和pull这两个互为相反的概念: Push:直译就是“推”的意思,这个操作可以把本地代码推到远程仓库,这样本地仓库跟远程仓库就可以保持同步了。 Pull:直译为“拉”的意思,如果别人提交代码到远程仓库,这个时候本地仓库代码与远程仓库代码并不一致,所以需要把远程仓库的最新代码拉下来,以保证两端代码的同步。 同时,提交代码前最好设置一下提交者的名字与邮箱,方便在commit记录里显示: git config —global user.name "名字" git config —global user.email "邮箱" 通常一次完整的提交过程如下: 将修改过的文件加入暂存区: git add [修改的文件或者目录] # .表示此目录下所有文件,一次提交的文件较多时,可以使用此命令 git add . 确认提交暂存区中的文件: # -m表示附加提交信息,后面的内容是关于提交的信息说明 git commit -m "提交信息" git add是先把改动添加到一个“暂存区”,可以理解成是一个缓存区域,临时保存改动,而git commit才是最后真正的提交。这样做的好处是防止误提交。 最后将代码推送到远程仓库指定分支,即可完成一次代码提(其中注意,最后提交时Gitee与Github的分支名有所不同): # 推送代码到指定分支 git push origin [分支名] # Github默认分支是main,用以下命令: git push origin main # Gitee默认分支是master,用以下命令: git push origin master 这里的origin是给远程仓库起的名字,当然名字并不唯一,可以是其他名字,只是因为习惯,一般都起名为origin。 一般在多人协作时,为了不产生代码冲突,提交代码前最好进行一次Pull操作: git pull origin [分支名] 查看git仓库当前状态,比如当前所在分支、被修改过的文件、未提交的文件等等: git status 查看提交时产生的所有commit记录: git log 0x07.分支操作 branch即分支的意思,分支的概念在团队协作的时候很重要,假设两个人都在做同一 个项目,这个时候分支就是保证两人能协同合作的最大利器了。举个例子,A, B两人在做同一个项目不同的模块,这个时候A新建了一个分支叫a,B新建了一个分支叫b,这样 A、B做的所有代码改动都在各自的分支上,互不影响,等到都把各自的模块做完 了,最后再统一把分支合并到master主分支。 在本地执行git init命令初始化仓库时默认生成一个主分支master。 而远程仓库的情况就有所不同了,曾经Github远程仓库的默认主分支也是master,但是去年(2020)10月份之后Github将默认主分支名称从master改成了main(据说是因为master这个词意为奴隶的主人,含有种族歧视意味),这也是在前面手动初始化Github仓库时要将主分支名重命名为main的原因。 而Gitee的主分支名称依然是master。 查看分支 查看本地分支列表: git branch 查看远程分支列表: git branch -r 建立新分支 git branch [分支名] 需要注意的是,新创建的分支的内容与当前所在的分支的内容相同,即新分支是基于当前所在的分支而创建的。 当我们建立了新分支以后,默认不会切换到新分支上,当前做出的任何更改还是基于当前所在的分支,所以需要切换分支。 切换分支 git checkout [分支名] # 切换到新分支之后手动拉取最新内容 git pull origin [分支名] 此时进行的改动就是在新分支下面了。当然,也有办法一步到位,加入-b参数即可。 建立并切换到新分支 git checkout -b [分支名] 推送本地分支到远程仓库 在本地建完新分支之后,就可以将本地新分支推送到远程仓库了,以保证两端同步 git push origin [新分支名] 如果本地推送到远程的分支想取另一个名字,那么可以用这条命令: git push origin [本地分支名]:[远程新分支名] 但是强烈不建议这样,这会导致管理混乱,建议本地分支跟远程分支名要保持 一致。 合并分支 当团队中不同成员都完成了开发之后,就可以将改动都合并到一块了。 # 首先切换到要合并到的分支上来,比如master(main)分支或是指定分支 git checkout [分支名]/main/master # 进行合并,将指定分支合并到当前所在的分支(即上一步切换到的分支)上来 git merge [指定分支] 在没有冲突的情况下,代码就可以合并完成了。合并完记得把新代码push到远程仓库。 删除分支 分支建错或者该分支的代码已经顺利合并到其他分支的时候,就可以删除分支了: git branch -d [分支名] 有些时候可能会删除失败,比如该分支的代码还没有合并到master或者其他分支,执行删除分支操作就会失败,Git会提示这个分支上还有未合并的代码,但是也可以强制删除分支: git branch -D [分支名] 以上仅仅为删除本地分支,若要删除远程分支可以可以运行带有 --delete 选项的 git push 命令: git push origin --delete [远程分支名] 重命名分支 将A分支重命名为B分支: git branch -m A B 类似于删除分支,无法重命名时,也可以强制重命名: git branch -M A B 如果是重命名远程分支,推荐的做法是: 删除远程待修改分支 push本地新分支名到远程 0x08.标签操作 开发的时候经常有版本的概念,比如v1.0、v1.1之类的,不同的版本肯定对应不同的代码,所以给代码打上标签,标签名可以是版本号或者其它标记。 Git 支持两种标签:附注标签(annotated)与轻量标签(lightweight)。 附注标签 附注标签是存储在Git数据库中的一个完整对象, 它们是可以被校验的,其中包含打标签者的名字、邮件地址、日期时间, 此外还有一个标签信息,并且可以使用GNU Privacy Guard(GPG)签名并验证。 通常建议创建附注标签,这样就可以拥有以上所有信息 添加附注标签信息用这条命令: git tag -a [标签名] -m "标签信息" -m参数为可选的,表示指定一条存储在标签中的信息。如果省略-m参数,那么Git会自动打开编辑器,让我们写一句标签信息,就像给提交写注解一样。 利用git show命令可以查看标签信息与对应的提交信息: git show [标签名] 输出会显示打标签者的信息、打标签的日期时间、附注信息与具体的提交信息。 轻量标签 如果只是想用一个临时的标签, 或者因为某些原因不想要保存这些信息,那么就可以用轻量标签。 轻量标签很像一个不会改变的分支——它只是某个特定提交的引用。本质上是将提交校验和存储到一个文件中——没有保存任何其他信息。 创建轻量标签,不需要使用 -a、-s 或 -m 选项,只需要提供标签名: git tag [标签名] 同样的,利用git show命令查看标签信息与对应的提交信息,输出只会显示出提交信息,不会看到额外的标签信息。 切换标签 当要切换到某个tag时,命令与切换分支类似: git checkout [标签名]; 推送标签 同样的,向远程仓库推送单个标签的命令与推送分支也是类似的: git push origin [标签名] 如果一次推送多个标签,可以使用带有--tags的git push命令: git push origin --tags 这条命令会将所有不在远程仓库服务器上的标签全部推送到远程仓库。 删除标签 删除本地标签: git tag -d [标签名] 上述命令并不会从远程仓库中移除这个标签,从远程仓库移除标签有两种办法: git push <remote> :[标签名称] 这种操作的含义是,将冒号前面的空值推送到远程标签名,从而实现删除的效果。 第二种方式相对来说更直观: git push origin --delete [标签名] 查看所有标签 执行git tag命令,就可以列出所有标签: git tag 默认是以字母顺序排列标签。 当然,可带上可选的 -l 选项或者 --list选项,以匹配特定标签名: git tag -l "通配符" # 或者 git tag --list "通配符" 例如,只查阅v2.*版本的标签名: git tag -l "v2.*" 给提交打标签 假设在过去某一个时刻提交了项目更改,后期才想起来忘记给项目打标签了,那么也可以在之后补上标签: git tag -a [标签名] [校验和] 与创建标签命令不同,需要在标签名之后添加一个校验和选项(也可以是部分校验和)。 通过以下命令可以查看每一次提交的校验和与对应的提交信息: git log --pretty=oneline 参考资料: 微信公众号 - stormzhang:从0开始学习Github系列文章 Git 教程 | 菜鸟教程 (runoob.com) Git - Book (git-scm.com) 版本控制 - 维基百科,自由的百科全书 (wikipedia.org) git - 维基百科,自由的百科全书 (wikipedia.org) GitHub - 维基百科,自由的百科全书 (wikipedia.org)
2021年09月14日
1,205 阅读
0 评论
0 点赞
1
2
...
5