Git标签 标签用于标定某个提交版本,本质就是一个指向某个commit的指针,只是无法移动。如果通过commit索引操作版本,那么一个个十六进制的索引值会让人眼花缭乱!查看所有标签(字典序,而非按照时间排序)。将所有未推送的标签全部推送至远程仓库。将指定标签推送至远程仓库。标签的命名根据用户而定,标定指定索引的提交版本。删除本地仓库的标签。
使用Git管理远程仓库 远程仓库 一、远程仓库的意义 与集中式版本控制系统SVN相比,Git是分布式版本控制系统,即同一个Git仓库可以分布到不同的机器上,不同主机可以克隆该仓库,而这一切都需要远程仓库的参与。
Git并行开发「分支」 Git并行开发「分支」 一、分支的概念 git会在本地库创建之初默认生成一个master分支,即主分支,专用于保存项目已完成的功能代码。 但是,一个项目往往是由多个模块组成的,在工作中这些模块分别交由
Git基本命令入门 Git基础 一、Git结构 git由三部分组成: 工作区:即普通文件,可以是代码类文本文件或是其它各种文件。 暂存区:临时存储待提交的代码,相当于一个缓冲区,方便之后一次性将它们提交至本地仓库。 本地
完美转发与底层原理剖析(引用折叠) 万能引用:即模板参数T&&,...它会开辟一块空间存放这个右值,对于自定义类型还会调用它的构造函数,因此可以说,。为了使一个函数既可以接受左值,又可以接受右值,C++11 之前的解决方案是将参数类型设为。但是。
什么函数不能是虚函数?为什么析构必须是虚函数? 虚函数是为了依据不同的对象来产生不同的状态,但是前提是得有这个对象,而对象的产生必须依靠构造函数;static成员函数是类的所有对象共享的,而虚函数是针对不同对象构成多态,二者矛盾;其次,静态成员函数没有this指针,无法访问虚函数表。内联函数是在编译期间直接在调用位置展开代码,而虚函数是在运行时通过不同对象来判断函数的调用;如果基类的析构函数是用virtual修饰的虚函数,那么无论派生类的析构函数是否有virtual修饰,它都是虚函数。友元函数不属于类的成员函数,不能被继承,更不能声明为虚函数。
C++菱形继承问题与虚拟继承原理 B和C同时继承了A中的a,然后又派生出了D,因而D中存在两份a:一份是B::a,一份是C::a。因此,在D中直接访问a会导致错误,此时的a就具有二义性,需要指定类作用域才能访问。多个类继承了同一个公共基类,而这些派生类又同时被一个类继承,这种称为菱形继承或钻石继承。多个类继承了同一个公共基类,而这些派生类又同时被一个类继承,这种称为菱形继承或钻石继承。B和C同时继承了A的成员,此时D继承B和C,相当于获得了两份A的成员,造成数据冗余。注:公共数据的位置可能是D的开头,也可能是结尾,依编译器而定。
C++智能指针原理与实现 如果一块内存被shared_ptr和weak_ptr同时引用,当所有shared_ptr析构了之后,不管还有没有weak_ptr引用该内存,内存也会被释放。unique_ptr在auto_ptr的基础上直接禁用了拷贝构造和赋值重载(delete),从而避免了auto_ptr在使用上容易出错的问题,但是没有了这两个函数,对于用户非常不便。weak_ptr是一个弱引用,它是为了配合shared_ptr而引入的一种智能指针,它指向一个由shared_ptr管理的对象而不影响所指对象的生命周期,也就是说,它。
水塘抽样算法与等概率证明 对于数据流中的数据,我们将其存储到容器中,并使用随机数取出[0, n)的任意一个元素,完成等概率抽样。该算法的时间与空间复杂度均为O(n)。水塘抽样算法用于:在数据流中以。对于数据流中的第i个数,它有。
redo日志、undo日志与事务隔离性 事务 一、事务及其特性 1、事务概念 在MySQL中,只有InnoDB和NDB两种存储引擎支持事务的功能。 2、事务的四大特性:ACID 原子性(Atomicity) 一件事情,要么没有做,要么做了且
Redis持久化策略剖析 通过使用RDB-AOF混合持久化,用户可以同时获得RDB持久化和AOF持久化的优点,服务器既可以通过AOF文件包含的RDB数据来。在重写期间被修改,此时服务器就会将这个修改命令写入到重写缓冲区中,方便子进程实时修改重写的AOF文件。,生成对应的命令,后期恢复时可以通过该命令生成一个相同的键值对,达到恢复整个数据库的目的。Redis提供了RDB持久化、AOF持久化、RDB-AOF混合持久化三种持久化策略。在子进程重写AOF时,会创建一个AOF重写缓冲区,如果有的。,又可以通过AOF文件包含的AOF数据来。