Skip to content

Commit

Permalink
git reset
Browse files Browse the repository at this point in the history
  • Loading branch information
wolverinn committed Dec 4, 2019
1 parent cd14cad commit 6952395
Show file tree
Hide file tree
Showing 4 changed files with 98 additions and 3 deletions.
File renamed without changes.
36 changes: 36 additions & 0 deletions Git-ComdLine-REST.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Git/RESTful API/命令行

## Git

#### Git 常用命令
- ```git clone```
- ```git remote add origin```
- ```git push -u origin master```
- ```git log```
- ```git status```
- ```git diff```
- ```git add *```
- ```git commit -m "message"```
- ```git push```
- ```git pull```

#### Git 撤销与回滚
- **暂存区**```git add```之后commit之前存在的区域;**工作区**```git commit```之后存在的区域;**远程仓库**```git push```之后;
- 作了修改,但还没```git add```,撤销到上一次提交:```git checkout --filename``````git checkout --.```
- 作了修改,并且已经```git add```,但还没```git commit```
- 先将暂存区的修改撤销:```git reset HEAD filename```/```git reset HEAD```;此时修改只存在于工作区,变为了 "unstaged changes";
- 再利用上面的checkout命令从工作区撤销修改
- ```git add```之后,作了修改,想丢弃这次修改:```git checkout --filename```会回到最近一次```git add```
- 作了修改,并且已经```git commit```了,想撤销这次的修改:
- ```git revert commitID```. 其实,```git revert```可以用来撤销任意一次的修改,不一定要是最近一次
- ```git reset --hard commitID```/```git reset --hard HEAD^```(HEAD表示当前版本,几个^表示倒数第几个版本,倒数第100个版本可以用HEAD~100);参数```--hard```:强制将暂存区和工作区都同步到指定的版本
- ```git reset``````git revert```的区别是:reset是用来回滚的,将HEAD的指针指向了想要回滚的版本,作为最新的版本,而后面的版本也都没有了;而revert只是用来撤销某一次更改,对之后的更改并没有影响
- 然后再用```git push -f```提交到远程仓库

#### Git 分支管理

## RESTful API

### 参考
- [Git教程 - 廖雪峰的官方网站](https://www.liaoxuefeng.com/wiki/896043488029600)
- [GitHub - jlevy/the-art-of-command-line: Master the command line, in one page](https://github.com/jlevy/the-art-of-command-line/blob/master/README-zh.md)
60 changes: 59 additions & 1 deletion Operating Systems.md
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,18 @@ IO多路复用(IO Multiplexing)是指单个进程/线程就可以同时处
- 异步IO(Asynchronous IO):用户线程发出IO请求之后,继续执行,由内核进行数据的读取并放在用户指定的缓冲区内,在IO完成之后通知用户线程直接使用。
</details>

##### 什么是用户态和内核态?
<details>
<summary>展开</summary>

为了限制不同程序的访问能力,防止一些程序访问其它程序的内存数据,CPU划分了用户态和内核态两个权限等级。

- 用户态只能受限地访问内存,且不允许访问外围设备,没有占用CPU的能力,CPU资源可以被其它程序获取;
- 内核态可以访问内存所有数据以及外围设备,也可以进行程序的切换。

所有用户程序都运行在用户态,但有时需要进行一些内核态的操作,比如从硬盘或者键盘读数据,这时就需要进行系统调用,使用**陷阱指令**,CPU切换到内核态,执行相应的服务,再切换为用户态并返回系统调用的结果。
</details>

### 什么是死锁?

在两个或者多个并发进程中,每个进程持有某种资源而又等待其它进程释放它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁(deadlock)。
Expand Down Expand Up @@ -342,8 +354,54 @@ IO多路复用(IO Multiplexing)是指单个进程/线程就可以同时处
- 利用杀死进程:强制杀死某些进程直到死锁解除为止,可以按照优先级进行。
</details>

### 什么是虚拟内存?
每个程序都拥有自己的地址空间,这个地址空间被分成大小相等的页,这些页被映射到物理内存;但不需要所有的页都在物理内存中,当程序引用到不在物理内存中的页时,由操作系统将缺失的部分装入物理内存。这样,对于程序来说,逻辑上似乎有很大的内存空间,只是实际上有一部分是存储在磁盘上,因此叫做虚拟内存。

虚拟内存的优点是让程序可以获得更多的可用内存。

##### 如何进行地址空间到物理内存的映射?
<details>
<summary>展开</summary>

内存管理单元(MMU)管理着地址空间和物理内存的转换,其中的页表(Page table)存储着页(程序地址空间)和页框(物理内存空间)的映射表。一个虚拟地址分成两个部分,一部分存储页面号,一部分存储偏移量。
</details>

### 有哪些页面置换算法?


<details>
<summary>局部性原理</summary>

- 时间上:最近被访问的页在不久的将来还会被访问;
- 空间上:内存中被访问的页周围的页也很可能被访问。
</details>

<details>
<summary>什么是颠簸现象</summary>

颠簸本质上是指频繁的页调度行为。进程发生缺页中断时必须置换某一页。然而,其他所有的页都在使用,它置换一个页,但又立刻再次需要这个页。因此会不断产生缺页中断,导致整个系统的效率急剧下降,这种现象称为颠簸。内存颠簸的解决策略包括:

- 修改页面置换算法;
- 降低同时运行的程序的数量;
- 终止该进程或增加物理内存容量。
</details>

### 磁盘调度
过程:磁头(找到对应的盘面);磁道(一个盘面上的同心圆环,寻道时间);扇区(旋转时间)。为减小寻道时间的调度算法:

- 先来先服务
- 最短寻道时间优先
- 电梯算法:电梯总是保持一个方向运行,直到该方向没有请求为止,然后改变运行方向。

### 参考
- [进程间通信IPC -- 简书](https://www.jianshu.com/p/c1015f5ffa74)
- [面试/笔试第二弹 —— 操作系统面试问题集锦 - CSDN博客](https://blog.csdn.net/justloveyou_/article/details/78304294)
- [线程同步与并发 - - SegmentFault](https://segmentfault.com/a/1190000018970361)
- [彻底搞懂epoll高效运行的原理](http:https://baijiahao.baidu.com/s?id=1641172494287388070&wfr=spider&for=pc)
- [彻底搞懂epoll高效运行的原理](http:https://baijiahao.baidu.com/s?id=1641172494287388070&wfr=spider&for=pc)

### 待完成
- [ ] IPC
- [ ] 进程同步问题:生产者-消费者问题...
- [ ] 并发、并行、异步的区别
- [ ] 银行家算法
- [ ] 文件与文件系统、文件管理?
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@
1. [计算机网络](Computer%20Network.md)
2. [操作系统](Operating%20Systems.md)
3. [数据库](Database.md)
4. [工具:Git/正则表达式/命令行](Git-ReExp-ComdLine.md)
5. 设计模式、RESTful
4. [设计模式](Design%20Pattern.md)
5. [工具:Git/命令行/RESTful](Git-ComdLine-REST.md)
6. Python

![1](_v_images/20191130211842900_27611.png)

0 comments on commit 6952395

Please sign in to comment.