Git基础篇(二十四)——clean指令
Git基础篇(二十四)——clean指令前言: 要对git仓库进行清理,需要使用clean指令,本篇文章详细介绍其用法。 1 简介 对Git仓库进行清洁管理,其指令形式如下。 1git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path> 谨慎使用 git clean 指令清理,因为删除后很可能是不能回复的。 2 常用指令介绍 -f 或 --force : 删除未track未被.gitignore记录的文件; -n : 删除演示,会将要删除的内容列出来,但不会真的删除; -d : 删除未track未被.gitignore记录的文件夹,需要和 -f 搭配使用; -x : 删除未track的文件,也包括被.gitignore记录的文件和文件夹,需要和 -f 搭配使用; 以下是用法示例。 2.1 删除未track未被.gitignore记录的文件1git clean...
TortoiseGit使用教程
TortoiseGit使用教程前言: TortoiseGit工具可以帮助我们可视化的操作Git,不必记忆繁琐的指令。 1 TortoiseGit简介 TortoiseGit(中文发音:涛特斯),中文名为海龟Git,它是免费的Git版本控制系统的客户端,将Git的操作从纯指令简化为UI的鼠标操作。 2 下载安装 在 TortoiseGit官网 下载最新版本并安装。登录官网界面,点击 Download 可看到如下界面。 安装TortoiseGit和中文语言包非常简单,全部按照默认设置点击下一步即可,安装完成后TortoiseGit即可开始使用,但语言包需要重启电脑后才会生效。TortoiseGit安装完成后对于Git管理的文件或目录会修改图标并提示,如果没有图标提示可参考我的另外一篇文章 《解决TortoiseSVN和TortoiseGit图标不显示问题》 解决。 以下教程我用英文版演示。 3...
HHKB键盘使用
HHKB键盘使用前言: HHKB键盘使用快三年了,一把放公司一把放家里,并且我可以是说是重度使用者,几乎每天都会较长时间的使用,以至于除了HHKB以外的键盘使用不利索了 1 什么是HHKB键盘 百度百科上有专门的解释。HHKB(Happy Hacking...
Git基础篇(二十三)——amend指令
Git基础篇(二十三)——amend指令前言: amend指令是常用指令,用于对最近一次提交记录进行修改,但指令的使用应该小心,本篇文章详细介绍amend的用法。 1 amend指令介绍 该指令用于对最近一次 commit 记录进行再次修改提交,不会生成新的提交记录,但会更新git的Commit ID。原提交记录可通过 git reflog 查看。 什么情况下应该应该对最近一次提交记录进行修改?比如忘记添加或多添加了一些文件,对文件内容需要重新修改,或者是对提交的log进行修改,此时应该重新提交。 2 amend修改分支最新提交2.1 修改文件、目录或log 若需要重新修改文件,则先在本地工作区直接修改,然后执行 git add --all 将修改添加到暂存区,若不需要修改文件则无需执行此步骤。 执行指令 git commit --amend 进行重新提交,输入指令后会跳转到log输入界面并显示最新log描述,若需修改log描述则直接进行修改,最后输入 :wq...
c进阶篇(十一)——变量初始化详解
c进阶篇(十一)——变量初始化详解前言: 定义变量时对数据类型进行初始化是十分有必要的,但变量的初始化也许还有你不知道的细节,本篇文章带你深入探讨。 1 静态、局部和全局变量初始化 我们把变量按照作用域和生存期进行分类,可以分为静态变量、局部变量、全局变量三类。定义变量时从语法上将可以对变量初始值进行初始化,也可以选择不初始化,以下进行未初始化时初值探究。 1.1 未初始化时的初值 未初始化时,由于全局变量和静态变量由编译器自动初始化为0(仍然建议代码上写明初始值赋值0),而局部变量存储在栈空间里,未初始化时初值是不确定的。这里以byte类型(uint8_t)举例,其他数据类型也一样(指整形、浮点型、字符型、指针型、数组、结构体、联合体、枚举)。 12345678910111213141516byte g_byTmp; //全局变量。byte Fun(void){ static byte s_byTmp; //静态变量。 byte byTmp; //局部变量。 ...
c进阶篇(十)——weak用法详解
c进阶篇(十)——weak用法详解前言: weak用于修饰弱函数或变量,以实现类似c++语言中函数重载的功能,本篇文章详细探讨weak的运用。 1 什么是weak函数 weak 不是c语言的关键字,而是一些编译器的扩展属性,MDK-ARM中在函数定义和声明前加 __attribute__((weak)) 表示将该函数定义为弱函数,而在变量定义或声明前加 __attribute__((weak))...
c进阶篇(九)——inline函数用法详解
c进阶篇(九)——inline函数用法详解前言: 内敛函数可有效降低调用函数的资源开销,堆栈开销和时间开销都能得到降低,但会增加Flash的消耗。本篇文章详细讲解内敛函数在c语言中的运用。 1 什么是内敛函数 在c/c++中,为了消除一些小函数(处理任务少,运算时间较短的函数),特别是一些调用频次很高的函数调用时带来的大量堆栈空间和进退栈时间的消耗,特别的引入 inline 修饰符在函数定义时放置在返回值关键字之前,请求编译器将其作为内敛函数处理,它对编译器只是提出一种建议,编译器将最终决定是否将其作为内敛函数或普通函数。被作为内敛的函数,编译器在调用处直接将其展开,嵌入到调用处,这样就省去了参数传递、对栈的操作和释放,从而节省了栈和时间开销。由于在每个调用处都会展开和嵌入内敛函数的代码,因此掉调用的地方越多Flash开销越大,对于多处调用的函数作为内敛将会快速消耗Flash空间,这一点与宏函数有些类似。 inline 是c99标准时加入的关键字。 2 内敛函数和宏函数的区别2.1...
c进阶篇(八)——回调函数用法详解
c进阶篇(八)——回调函数用法详解前言: 我们都知道变量可以通过指针的方式访问,那么函数其实也可以。本篇文章将详细介绍c语言中回调函数的用法。 1 什么是回调函数 网上对回调的解释有好几套说法,但是都没有很好的体现出回调和非回调函数的差异特点。比较好的是百度百科的说法,c语言回调函数用函数指针实现,是一种被作为参数传递的函数。为甚普通函数也可以被调用还要用回调函数呢。回调函数可以使得调用者不必关系谁是被调用者,它只需要知道存在一个符合特定函数原型和限制条件的被调函数即可。也就是说回调函数可以“解耦合”。回调函数还能实现接口不变的情况下不同功能切换。 2 定义回调函数 回调函数的本质是函数指针,即指向函数的指针,我们知道变量是有类型的,而函数是有返回值和形参的。以下示范定义一个名为 CallBack 的回调函数,返回值类型为 byte ,形参1为 byte ,形参2为 byte 。 1234//定义回调函数CallBack,返回值:byte,参数1:byte型,参数2:byte型。byte...
Vim基础篇(二十七)——日历插件calendar
Vim基础篇(二十七)——日历插件calendar前言: 谷歌日历是我目前用过最好用的日历软件,它可以详细记录日常行程。Calendar是将谷歌日历与Vim结合的一款优秀插件。 1 安装Calendar 通过vim-plug插件管理器安装 itchyny/calendar.vim ,在Vim中执行以下指令进行安装。 1:PlugInstall 2 用法 输入以下指令打开日历插件。 1:Calendar 打开日历并跳转到指定年份,该日期格式需配置 let g:calendar_date_endian = "big" 。 1:Calendar <year> <month> <day> 以年视图打开日历。 1:Calendar -view=year 以月视图(默认)打开日历。 1:Calendar...
Git查看冲突
Git查看冲突前言: Git进行分支合并时,合并的分支若都对同一个文件进行了修改,则会出现合并冲突,有时有多份文件同时发生冲突,本篇文章介绍查看哪些文件冲突的方法。 1 查看冲突文件 当合并分支后,被合并的不同分支若对相同的文件进行修改则会产生冲突。可能同时有多份文件发生冲突,若想要查看有哪些文件冲突可使用以下指令。 1git status 冲突文件会列出在 Unmerged paths 下面。