Git命令:git-stash
前言git是用来管理代码和工作流的强大工具,它以commit为单位,低成本开辟分支等优势备受青睐.在实际开发中,我们常常遇到一些复杂的应用场景,不单单是pull,commit,push就能解决.下面我们通过引入git stash的使用,来讨论在复杂情况下git发挥的强大功能.
git stash 的作用git stash用于想要保存当前的修改,但是想回到之前最后一次提交的干净的工作仓库时进行的操作.git stash将本地的修改保存起来,并且将当前代码切换到HEAD提交上.
通过git stash存储的修改列表,可以通过git stash list查看.git stash show用于校验,git stash apply用于重新存储.直接执行git stash等同于git stash save.
最新的存储保存在refs/stash中.老的存储可以通过相关的参数获得,例如stash@{0}获取最新的存储,stash@{1}获取次新.stash@{2.hour.ago}获取两小时之前的.存储可以直接通过索引的位置来获得stash ...
你为什么需要OLED?
简介OLED 是最近厂商宣传自家新品手机肯定会说到的一个词,那么到底什么是 OLED? 它的原理又是什么?
OLED 是个简称,全称为 Organic Light-Emitting Diode ,中文叫有机自发光二级管,又叫有机电激发光显示,是由法国人和美国人在 1950 ~ 1960 年左右研发出的一种新型显示技术,并在之后由美国柯达和英国剑桥大学加以研究,最后在 21 世纪被日本的索尼,韩国的三星、LG,中国的华星光电等公司批量生产
OLED 显示器依驱动方式的不同又可分为被动式(Passive Matrix,PMOLED)与主动式(Active Matrix,AMOLED)
结构OLED 基本结构是由一薄而透明具半导体特性之铟锡氧化物(ITO),与电力之正极相连,再加上另一个金属阴极,包成如三明治的结构。整个结构层中包括了:电洞传输层(HTL)、发光层(EL)与电子传输层(ETL)。当电力供应至适当电压时,阳极电洞与阴极电子便会在发光层中结合,产生光子,依其材料特性不同,产生红、绿和蓝三原色,构成基本色彩。OLED的特性是自发光,不像薄膜晶体管液晶显示器需要背光,因此可视度和亮度 ...
为什么 0.1 + 0.2 不等于 0.3?
浮点数运算你使用的编程语言并不烂,它能够做浮点数运算,但是计算机天生只能存储整数,因此它需要某种方法来表示小数,这种表示方式会带来某种程度的误差,这就是为什么往往 0.1 + 0.2 不等于 0.3
为什么?实际上很简单:
对于十进制数值系统,它只能表示以进制数的质因子为分母的分数: 10 的质因子有 2 和 5。因此 $\frac{1}{2}$、$\frac{1}{4}$、$\frac{1}{5}$、$\frac{1}{8}$ 和 $\frac{1}{10}$ 都可以精确表示,因为这些分母只使用了10的质因子。相反,$\frac{1}{3}$、$\frac{1}{6}$ 和 $\frac{1}{7}$ 都是循环小数,因为它们的分母使用了质因子 3 或者 7。 二进制下,只有一个质因子,即 2。因此你只能精确表示分母质因子是 2 的分数。二进制中,$\frac{1}{2}$、$\frac{1}{4}$ 和 $\frac{1}{8}$ 都可以被精确表示。但是,$\frac{1}{5}$ 或者 $\frac{1}{10}$ 就变成了循环小数。所以,在十进制中能够精确表示的 0. ...
再见,Android 11 | 你好,Android 12
最近几天因为买了新手机,再加上过年和开学等各种麻烦事儿,就没更新,说声抱歉从今天开始应该会恢复更新的频率了,当然万不得已我会在留言版做公告
本文作者黎明前线Alan & Clyde,转载自少数派,转载时有改动
Android 11 还没捂热乎呢,这不,Android 12 Developer Preview 1 就出来了,不得不说 Google 对自己干儿子 (不会有人不知道 Android 是 Google 收购来的吧) 真是关怀备至(不是),看这更新速度,有望在2023下半年赶上 iOS 版本号(不是)
不到半年 (163天) 就更新的系统,到底啥来路?
简介和去年的 Android 11 一样,本次 Android 12 正式版发布前依然会在接下来的半年多时间里以每月 1 次的更新频率先后放出 3 个开发者预览版和 4 个 Beta 测试版,其中 5 月的首个测试版预计将在今年的 I/O 大会后同步放出,届时 Android 12 的 Beta 测试项目 应该也会上线
别灰心,虽然 Beta 测试项目 还没上线,部分 Pixel 用户还可以通过手动刷入 开发者 ...
Aplayer的基础教程
🍭 Wow, such a beautiful HTML5 music player
APlayer 是采用 MIT 许可的开源项目,它是一个智能的音乐播放器
使用在 HTML 中写入:
123<link rel="stylesheet" href="[APlayer.min.css]"><div id="aplayer"></div><script src="[APlayer.min.js]"></script>
在 JS 中写入:
123456789const ap = new APlayer({ container: document.getElementById('aplayer'), audio: [{ name: 'name', artist: 'artist', url: 'url.m ...
更换Linux系统更新源
简介Linux、类Linux系统都是用叫做 Package Manager 用来管理软件包的,这里我以Ubuntu 18.04为例介绍一下如何使用命令来安装软件包
1apt install pk-name
随便安装一个软件包,会发现速度不是很慢就是根本连接失败,那难道就没有别的办法了吗?
修改其实,我们可以对系统进行切换源操作,图形界面的Ubuntu在设置里会自带切换源的方式,不过命令行就需要手动切换了👇
系统里有一个文件用来专门处理软件源的,我们首先复制该文件,命令如下👇
1sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
接下来我们使用文本编辑器将其修改,这里推荐使用nano编辑器,可以通过apt install nano来安装,如果因为网络安装不了,也可以使用自带的vim
删除原来的所有内容,将以下内容选择一个复制进去:
⚠警告:下列软件源只适用于 Ubuntu 18.04,如因为版本使用错误等问题本人概不负责,可以自行尝试使用.bak还原
阿里源12345678910deb http://mirrors. ...
为什么应该在Linux上使用命名管道
本文作者Linux中国,转载自知乎,转载时有改动
命名管道并不常用,但是它们为进程间通讯提供了一些有趣的特性
看了上一篇文章后,我估计每一位 Linux 使用者都熟悉使用 “|” 符号将数据从一个进程传输到另一个进程的操作。它使用户能简便地从一个命令输出数据到另一个命令,并筛选出想要的数据而无须写脚本进行选择、重新格式化等操作
还有另一种管道,虽然也叫 “管道” 这个名字却有着非常不同的性质。即您可能尚未使用甚至尚未知晓的 —— 命名管道
普通管道与命名管道的一个主要区别就是命名管道是以文件形式实实在在地存在于文件系统中的,没错,它们表现出来就是文件。但是与其它文件不同的是,命名管道文件似乎从来没有文件内容。即使用户往命名管道中写入大量数据,该文件看起来还是空的
如何在 Linux 上创建命名管道在我们研究这些空空如也的命名管道之前,先追根溯源来看看命名管道是如何被创建的。您应该使用名为 mkfifo 的命令来创建它们。为什么提及 “FIFO”? 是因为命名管道也被认为是一种 FIFO 特殊文件。术语 “FIFO” 指的是它的先进先出 first-in, first-out ...
介绍Linux中的管道和命名管道
本文作者Linux中国,转载自知乎,转载时有改动
要在命令间移动数据?使用管道可使此过程便捷
在 Linux 中,pipe 能让你将一个命令的输出发送给另一个命令。管道,如它的名称那样,能重定向一个进程的标准输出、输入和错误到另一个进程,以便于进一步处理
“管道”(或称“未命名管道”)命令的语法是在两个命令之间加上 | 字符:
1Command-1 | Command-2 | ...| Command-N
这里,该管道不能通过另一个会话访问;它被临时创建用于接收 Command-1 的执行并重定向标准输出。它在成功执行之后删除
在上面的示例中,contents.txt 包含特定目录中所有文件的列表 —— 具体来说,就是 ls -al 命令的输出。我们首先通过管道(如图所示)使用 “file” 关键字从 contents.txt 中 grep 文件名,因此 cat 命令的输出作为 grep 命令的输入提供。接下来,我们添加管道来执行 awk 命令,该命令显示 grep 命令的过滤输出中的第 9 列。我们还可以使用 wc -l 命令计算 contents.txt 中的行数
只要 ...
MathJax基础语法
本文简单易懂内容部分省略,防止文章过于冗长
什么是 MathjaxMathJax 是一个开源,基于 Ajax 技术的数学表达式显示解决方案。它能够在 HTML 页面中高质量的显示 LaTeX 和 MathML 数学符号。支持大部分浏览器,不需要插件,额外字体或安装特殊的阅读器。支持复制 / 粘贴。如果浏览器支持 Mathml,则 MathJax 可以将 TeX 标记转换为 Mathml 语言,来加速渲染
MathJax 跟其他基于 LaTeX 的许多显示方案一样,不需要网页浏览者安装任何插件或者脚本,其最大的优势在于可以以基于文本的方式显示页面中的数学公式,支持几乎所有的主流浏览器。而且不管是 IE6+,Firefox3.0+,Chrome,Safari,还是其他任何千奇百怪的浏览器,都能够很好地渲染公式样式
基础语法编写位置
行内公式: 在行内用$...$包裹,中间编写公式 语句: $\sum_{i=0}^N\int_{a}^{b}g(t,i)\text{d}t$ 长这个亚子👉: $\sum_{ ...
一份不严谨的FFmpeg入门教程
FFmpeg 是著名的音视频处理工具,常用的就是它的命令行(CLI)程序,这里不做安装说明
语法FFmpeg 的命令行参数非常多,可以分成五个部分:
1$ ffmpeg {1} {2} -i {3} {4} {5}
上面命令中,五个部分的参数依次如下:
全局参数,
输入文件参数,
输入文件,
输出文件参数,
输出文件
参数太多的时候,为了便于查看,FFmpeg 命令可以写成多行:
123456$ ffmpeg \[全局参数] \[输入文件参数] \-i [输入文件] \[输出文件参数] \[输出文件]
例如:
123456$ ffmpeg \-y \ # 全局参数-c:a libfdk_aac -c:v libx264 \ # 输入文件参数-i input.mp4 \ # 输入文件-c:v libvpx-vp9 -c:a libvorbis \ # 输出文件参数output.webm # 输出文件
上面的命令将 mp4 文件转成 webm 文件,这两个都是容器格式,输入 ...