【Git】提交信息规范 | 转载
git代码提交规范的那些事 1.提交格式1type(scope): message 2.参数介绍2.1 typetype:指的代码的提交类型,不同的提交类型表示对应不同的代码改动,比如: feat:新功能的开发 fix:bug的修复 docs:文档格式的改动 style:代码格式改变 refactor:对已有的功能进行重构 perf:性能优化 test:增加测试 build:改变了build工具 revert:撤销上一次的commit提交 chore:构建过程或辅助工具的变动 2.2 scopescope:用于说明commit影响的范围,比如:权限模块、还是首页 2.3 messagemessage:对提交的代码做一个简短的说明,不能过长。 需要注意的是,提交格式并没有一个固定的规范,不管你最后采取了什么格式,一定要遵守一个理念:那就是同一仓库的所有代码提交需要采用一个固定的格式。不能出现一个仓库里面用两个风格的git commit的情况 1234作者:听书先生 链接:https://www.jianshu.com/p/2ab3a991d1f9 来源:简书 ...
【Git】在Windows CMD中和VScode中配置已经安装好的git
本篇博客将教您如何将sourcetree下载好的git导入到windows的cmd进行使用 问题引出 我使用系统为win11。win10的操作理应相同,只不过设置的位置可能有差异 我现在使用git主要用的是sourcetree的可视化界面,可以清楚地看到每一次提交的diff和提交历史,非常好用,也强烈推荐大家使用 【使用教程】 不过当你初次安装sourcetree的时候,他会帮你下载一个git 如果系统中已有git,也可能会被移动到sourcetree自己的内置使用目录中 这样就会对我们在其他地方使用git-cmd造成一定的不便。 对于git仓库,sourcetree会提供一个命令行的选项。但是需要从这里面打开肯定不如直接右键选择windows...
【C++】搜索二叉树/KVL树
暑假已经过去一半了,你的作业写的怎么样了? 不八八这些没啥用的了,本篇博客让我们来认识一下搜索二叉树以及KVL树,也为后续学习map和set打下基础。 在之前,我写过一篇用C语言实现的二叉树博客。如果你想了解二叉树的基本定义,可以看看👉...
【C++】STL:stack/queue/priority_queue/deque
来喽,STL的栈和队列! [TOC] 1.Stack栈是一个遵循LIFO规则的容器,即后进先出(last in first out)。后放入容器内的数据会先出来。 如果你不太理解栈的性质,可以先看看我写的C语言栈的博客【链接】 打开Cplusplus一看,栈的函数肉眼可见的少。这和我们C语言实现的功能基本是一样的。 它甚至没有拷贝构造! 1.1 容器适配器等会,这个container是什么玩意? 别急,先让我们来看看栈的类定义👇 12std::stacktemplate <class T, class Container = deque<T> > class...
【C++】STL:vector
STL的第二站,便是vector了。 对于学习STL,有一个非常大的好处便是,它们有很多函数都是相通的!这也是面向对象的一大好处:背后的函数实现可能不同,但是使用方式相同。 1.简单了解vector https://m.cplusplus.com/reference/vector/vector/ 老样子,打开我们的cplusplus——然后惊奇的发现,它换UI了!终于不再是那个2000年初的模样了(虽然这和我们的使用没啥关系) 不摸鱼了,来看看vector究竟是何方神圣——其实他就是一个顺序表 和string不同的是,vector有模板参数,可以存储任何类型的内容。int、double、char、甚至string。 这一点在cplusplus网站上的第一行便告诉了我们 1template < class T, class Alloc = allocator<T> > class vector; // generic...
【Linux】权限管理
Linux部分的内容,我以权限管理作为起始。 关于Linux命令行操作的部分,大家可以去网上搜搜,教程很多,且全面:【链接】。这里我就不再把相同的东西复述一遍了,毕竟Linux命令这种东西,你不会的时候可以去查,常见的命令敲多了肯定忘不掉 不多说,开始Linux权限操作的内容吧! 本篇博客所有演示均在CentOS7.6下进行 [TOC] 1.什么是权限?权限是用于对用户进行约束的。正好比视频网站的vip一样,没有vip权限,你就看不到只有vip才能观看的影片。 在linux中,用户分为两种 root:超级用户 其他:普通用户 其中root用户的权限最高,可以在系统里面为所欲为。其所作操作在一定程度上会影响用户的使用环境。比如你使用root用户在系统里面安装了某个程序,那么所有子用户都可以使用这个程序,反之不行。 在root用户中,你还可以通过su user这个命令切换到任何子用户而不用输入密码。但是从子用户切换到root则需要输入root用户的密码。所以,保证你的root用户密码不被他人知道是很重要的! 2.权限管理本篇博客主要关注Linux中的文件权限 2.1...
【C++】STL:string
这是接触STL的第一篇博客,让我们以string为始,走入SLT的世界吧! [TOC] 1.何为STLSTL是C++标准库的重要组成部分,其作用是为绝大多数数据结构提供轮子,是一个包罗了数据结构和算法的软件框架。 在之前C语言的数据结构专栏中,顺序表、链表等等都是需要我们自己造轮子来实现。但在C++中,有STL就好比站在了巨人的肩膀上,可以走的更远。当我们需要使用这些内容时,无需自己重新造轮子,从而大大提高了开发效率。 1.1 STL版本这里我直接贴一个C语言中文网的链接👉【点我】 里面详细介绍了STL发展历程中出现的几个版本,其中SGI因为被Linux的GCC所使用,可移植性高。之后的博客主要是学习SGI STL版本。 1.2 STL组成同样是C语言中文网的资料👉【链接】,我将它整理为了下面这个思维导图 在面试中,STL的内容也是HR经常考察的。所以我们一定要认真学习这一部分的知识点! 1.3...
【C++】模板:了解泛型编程
本篇是C++模板学习的一些笔记 [TOC] 1.了解泛型编程泛型编程,故如其名,是一个泛化的编程方式。其实现原理为程序员编写一个函数/类的代码示例,让编译器去填补出不同的函数实现 就好比活字印刷术,可以灵活调整印刷的板块和内容,比只能固定印刷某一个内容的雕版印刷术效率更高,也让印刷术由此得到了更广泛的应用。 在C++中,函数重载和模板的出现,让泛型编程得到了实际的应用。其中模板,就是类似活字印刷术一样的存在。 我们写一个模板,编译器帮我们按照我们写的模板的方式,实例化成不同的函数。相当于替代了一部分操作,节省了代码量。 2.函数模板八八了那么多没用的,让我们来看看函数模板的语法实现吧 2.1 简单示例下面是一个最简单的交换函数的例子,通过标明模板参数T,让编译器自动识别函数传参,推测并实例化出不同的函数,供程序来调用。 1234567template<typename T>void Swap(T& left,T& right){ T temp = left; left = right; right =...
【C++】动态内存管理
在之前类和对象的博客里面,已经记录过了C++中动态内存管理函数new和delete的基本使用。本篇博客是对C++动态内存管理的进一步细化 [TOC] 1.C/C++内存分区这是一个老生常谈的问题了,直接看下面这个图吧! 这里的数据区其实就是静态区,而代码区是常量区。这里的BBS区先暂时pass掉。 要想辨别上面的几个内存分区,可以现来看下面这个代码,你能分的清楚它们都是存在内存的哪一个区域吗? 12345678910111213141516int a = 1;//数据区static int b = 1;//数据区int main(){ static int c = 1;//数据区 int d = 1;//栈 int arr1[10] = {1, 2, 3, 4};//栈 char arr2[] = "abcd";//栈 char* arr3 = "abcd";//"abcd"存在代码区 int* ptr =...