自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 Git 撤销已经提交的 push(10)

撤销已经提交的 push有些时候,代码已经 push 到中央仓库了,才发现有个 commit 写错了。这时候有两种情况:出错内容在自己的 branch出错的内容已经 合并到 master 了出错的内容在你自己的 branch自己的 branch 的某个 commit 出错时:在本地使用 git rebase -i commit标识号 对之前的 commit 进行修改。然后...

2019-08-05 15:19:25 192

原创 Git 丢弃提交(9)

丢弃提交当写完代码提交了之后,在看到的时候发现太懒了,想直接丢弃重写。这时候,就体现出丢弃最新提交的作用了reset --hard 丢弃最新的提交如果想丢弃最新的提交,可以使用下面的命令git reset --hard HEAD^解释:HEAD 代表当前工作目录,^ 代表前一个工作目录。所以 commit 代表最近的一次提交这里的删除只是把 HEAD指针往前移了一下,并没有...

2019-08-05 15:18:38 397

原创 Git 修改之前错误的提交(非最新的提交)( 8)

修改之前错误的提交(非最新的提交)commit --amend 可以修复最新 commit 的错误,但是如果倒数第二个 commit 写错了,就要用到 rebase -i(交互式 rebase)命令了git rebase -i:交互式 rebaserebase -i 是 rebase --interactive 的缩写形式,意为交互式 rebase如果是在写错 commit 之后,又...

2019-08-05 15:17:12 699

原创 Git 修改错误的最近一次提交(7)

修改错误的提交发现上一次提交中有错误的内容,该怎么办。第一种方法:修改文件,再做一次新的 commit第二种方法: 使用 git commit --amedgit commit --amend“amend” 是修正的意思。在提交时,如果加上 --amend 参数,Git 不会在当前 commit 上增加 commit,而是会把当前 commit 里的内容和暂存区(stageing a...

2019-08-05 15:15:47 342

原创 Git 查看改动的内容(6)

查看改动记录git 查看改动的内容实际上是使用 git log 的高级特定来实现的git log作用: git log 是查看 git 的提交记录,不过这个记录只是每次提交的简介信息(作者,日期,提交信息)git log -p-p 是 --patch 的缩写,通过 -p 参数,可以看到具体每个 commit 的改动细节:git log -pgit log --stat如果只...

2019-08-05 15:13:47 16006 2

原创 Git 的 新建工作流(Pull Request)(5)

Feature Branching 工作流Feature Branching 工作流可以总结为两点: 1. 任何新的功能(feature)或 bug 修复全部新建一个 branch 来写。 2. branch 写完后,合并到 master ,然后删掉这个 branchFeature Branching 工作流流程加入我们现在有一个新功能要完成 newWork, 我们需要新建一个分支...

2019-08-05 15:12:55 108

原创 Git 的 merge(4)

merge 合并 commitspull 的本质就是把远端仓库新的 commits 使用 fetch 拉取到本地,然后使用 merge 把远端仓库新的 commits 合并到本地仓库merge 本质merge 的意思是合并,其作用是从 commit 和当前 commit(即 HEAD 所指向的 commit)分叉的位置起,把目标 commit 的路径上的所有 commit 的内容一并应用...

2019-08-05 15:12:23 238

原创 Git 的 push 本质(3)

push 的本质push 从宏观上看是把本地仓库的更改推到中央仓库中push: 把 branch 上传到远端仓库push 内部:push 做的事是把当前 branch 的位置(即它指向哪个 commit)上传到远端仓库,并把它的路径上的 commits 一并上传场景:本地仓库有一个 master ,它超前了远程仓库连个提交;另外还有一个新建的 branch 叫 feature1,远程仓...

2019-08-05 15:11:52 660

原创 Git 的 branch(2)

Head、master 与 branchhead 、master 、branch 都是与 Git 分支有关的概念使用 git log 查看分支有关信息[外链图片转存失败(img-OaIhe7LD-1564988950498)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1564379855877.png)...

2019-08-05 15:09:34 195

原创 Git快速上手(1)

什么是版本控制系统版本控制系统(VCS) 最基本的功能是版本控制。所谓版本控制,意思就是在文件修改历程中保存修改历史,让你可以方便地撤销之前对文件的修改操作。相关命令git clone作用: 把中央仓库的代码 clone (克隆) 到本地解释:git clone 命令后面接着的是远端仓库的地址git log作用: 查看提交历史记录解释:commit 后面的那串字符为提...

2019-08-05 15:08:43 89

原创 Redis(8)—— Redis的服务器端

redis 服务器端默认保存着 16 个数据库,客户端可以通过 SELECT (0~15)来选择不同的服务器。1. 服务器中的数据库结构Redis 服务器将所有数据库都保存在服务器状态 redis.h/redisServer 结构的 db 数组中, db 数组每一项都是一个 redis.h/redisDB 结构,每个 redisDB 结构代表一个数据库struct redisServer...

2019-06-14 11:52:15 109

原创 Redis(7) —— Redis 中的五大对象

Redis 中存在五种底层的数据结构:简单动态字符串(SDS)、双端链表、字段、压缩列表、整数集合Redis 中由五种基本对象:字符串对象、列表对象、哈希对象、集合对象和有序集合对象Redis 中的基本对象的回收基于引用计数法1. 对象的类型和编码Redis 中的对象都是由 RedisObject 结构表示,该结构保存着三个属性:type 属性、encoding 属性 和 ptr 属性...

2019-06-10 09:23:29 237

原创 Redis(6) —— 底层数据结构 —— ziplist(压缩列表)

压缩列表是列表键和哈希键的底层实现之一1. 压缩列表的用处当一个列表键只包含少量列表项,且每个列表项是小整数值或短字符串,那么 Redis 就是用压缩列表来作为列表的底层实现。当一个哈希键只包含少量键值对,并且每个键值对的键和值是小整数值或短字符串,那么 Redis 就会使用压缩列表来作为哈希键的底层实现。2. 压缩列表的构成压缩列表是由一系列特殊编码的连续内存块组成的顺序性...

2019-06-03 08:17:09 236

原创 Redis(5) —— 底层数据结构 —— intset(整数集合)

整数集合(intset)是集合键的底层实现之一,当一个集合只包含数值元素,并且这个集合的元素数量不多时,Redis 就会使用整数集合作为集合键的底层实现之一1. 整数集合的作用集合键的底层实现之一(集合元素数量少,且全为整数)2.整数集合的实现整数集合(intset)是 Redis 用于保存整数值的集合抽象数据结构,它可以保存类型为 int16_t, int32_t 或者 in...

2019-06-02 19:22:03 187

原创 Redis(4) —— 底层数据结构 —— skiplist(跳跃表)

如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员(menber)是比较长的字符串时,Redis 就会使用 skiplist(跳跃表)来作为集合的底层实现1. 跳跃表的用途有序集合键(zset)集群节点中用作内部数据结构2. 跳跃表的特点每个节点中存在多个指向其它节点的指针,以达到快速访问平均 O(logn) 最坏 O(n) 复杂度的节点查询效率和平衡树相...

2019-06-02 16:07:03 257

原创 Redis(3) —— 底层数据结构 —— 字典

字段是以 key-value 形式来存储数据的,c 语言中没有字典的数据结构,所以 Redis 构建了自己的字典实现1. Redis 字典的用处Redis 数据库就是以字典来存储数据Redis 的散列表(哈希键) 使用字典来实现的2. 字典的实现哈希表的实现Redis 字典所使用的哈希表由 dict.h/dictht 结构定义typedf struct dictht{ ...

2019-06-02 15:26:08 160

原创 Redis(2) —— 底层数据结构 —— 链表

当一个列表键(key-value 中的 value 为 list)包含了数量较多的元素,又或者列表中包含的元素都是比较长的字符串时,Redis 就会使用 链表作为列表键的底层实现1. 链表的用处某些情况下用作列表键客户端输出缓冲区2. 链表和链表节点的实现每个链表节点使用了一个 adlist.h/listNode 结构来表示typedef struct listNode{ ...

2019-06-02 12:24:53 121

原创 Redis(1)——底层数据结构 —— SDS(简单动态字符串)

SDS 全称为 simple dynamic string,简单动态字符串1. SDS 的用处SDS 在 Redis 中大致有四种用处Redis 的 key-value 键值对中的键Redis 的 key-vlaue 中的 value 类型为 String 的 valueAOF 缓冲区客户端状态中的输入缓冲区2. SDS 的 c 语言定义每个 sds.h/sdshdr 结构...

2019-06-02 11:11:08 187

原创 Nginx(2) —— Ubuntu 系统安装 Nginx

1. 安装 Nginx 之前需要做的准备工作安装 GCC 编译器 (用来编译 Nginx 程序)sudo apt-get install gcc安装 PCRE 库 (正则表达式库,nginx.conf里面用到了正则表达式)sudo apt-get install libpcre3 libpcre3-dev 安装 zlib 库 (压缩库,用来对 HTTP 包进行压缩)s...

2019-05-31 10:39:27 192

原创 Nginx(1)—— Nginx 的优点

Nginx 的优点1. 更快更快表现在两个方面:在正常情况下,单词请求可以得到更快的响应在高峰期(如有数以万计的并发请求),Nginx 可以比其它 Web 服务器得到更快响应请求。2. 高扩展性Nginx 的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成。3. 高可靠性Nginx 的高可靠性来自于其核心框架代码的优秀设计、模块设计的简单性。另...

2019-05-31 10:38:57 259

原创 Socket

1. 五种 IO 模型的特点以及比较  1.1 阻塞式 IO  1.2 非阻塞式 IO  1.3 信号驱动型 IO  1.4 IO 复用  1.5 异步 IO  1.6 五大 IO 模型的比较1. 五种IO模型的特点以及比较IO 模型一个输入操作通常包含两个阶段:等待数据准备好从内核向进程中复制数据对于一个套接字上的输入操作,第一步通常涉及数据从网络中到达。当所有数据到...

2019-04-09 14:35:01 125

原创 HTTP 知识点

概览1.HTTP常用方法2.Get与POST比较:作用、参数、安全性、幂等型、可缓存3.HTTP状态码4.Cookie作用、安全性问题、和Session的比较[5.缓存的 Cache-Control字段,特别是Expire和max-age的区别。ETag 验证原理](##5.缓存的 Cache-Control字段,特别是Expire和max-age的区别。ETag 验证原理)6.长连接...

2019-04-09 11:24:47 2081 2

原创 计算机网络知识点

概览1. 各层协议的作用、以及 TCP/IP 协议的特点2. 以太网的特点,以及帧结构3. 集线器、交换机、路由器的作用,以及所属的网络层 4. IP 数据报常见字段的作用5. ARP 协议的作用,以及维护 ARP 缓存的过程6.ICMP 报文种类以及作用;和 IP 数据报的关系; 7.Ping 和 Traceroute 的具体原理 8. UDP 与 TCP 的比较,分析上层协议应...

2019-04-08 16:15:35 379

原创 Linux 知识点

概览文件系统原理数据恢复原理硬链接与软连接的区别常用命令的使用僵尸进程与孤儿进程的区别概览文件系统原理数据恢复原理硬链接与软连接的区别常用命令的使用僵尸进程与孤儿进程的区别,从 SIGCHLE 分析产生僵尸进程的区别文件系统原理1. 分区与文件系统对分区进行格式化是为了在分区上建立文件系统。一个分区通常只能格式化为一个文件系统,但是磁盘阵列等技术可以将一个分区格式化...

2019-03-31 14:52:51 184

原创 操作系统基础

后台面试常问知识点——操作系统基础问题概览1.进程与线程的本质区别、以及各自的使用场景2.进程状态3.进程调度算法的特点以及使用场景4.线程实现的方式5.协程的作用6.常见进程同步问题7.进程通信方法的特点以及使用场景8.死锁的必要条件、解决死锁的策略,数据库管理系统中和 Java 中如何解决死锁9.虚拟内存的作用,分页系统实现虚拟内存的原理10.页面置换算法原理,特别是 L...

2019-03-31 12:39:48 288

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除