Ervin

真正的强者是认清了生活的本质,并且去热爱他的人。


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

Git使用心得

发表于 2018-10-18 | 分类于 技术
字数统计: 3.2k | 阅读时长 ≈ 12

git reset

1.使用git add .添加了所有修改文件到暂存区之后在commite到本地之前想撤销add操作可以使用

1
git reset HEAD <file>

将某个文件从暂存区拿出来。

2.已经commite了提交到了本地但是还没有push到远端,这时候发现有个文件不能提交到远端可以使用

1
git reset -soft/--mix/--hard <commite id>

会将本地仓库回退到commite id这个版本(可以是上一次commite的版本)。reset后的参数代表了是否保留本地代码的修改,具体可以查询网络。git reset命令的使用

选项 git reset的影响
选项 HEAD 索引(暂存区) 工作目录(源代码)
–soft 是 否 否
–mix 是 是 否
–hard 是 是 是

HEAD:表示当前git指针指向的位置
索引:表示add之后去到的暂存区
工作目录:表示代码文件的改动
提交C1 –> 提交C2
总结就是:soft后git指针会指向C1的提交,而C2修改的文件还是add状态,修改内容不会丢失,对现有的版本改动最小;mix后(git reset默认操作)git指针会指向C1提交,C2修改的文件不是add状态(需要重新add)不在暂存区,文件修改内容不丢失;hard后git指针指向C1提交,C2修改文件不在暂存区,文件修改丢失,完全恢复到C1提交的状态. hard慎用

阅读全文 »

Hello World

发表于 2018-10-18 | 分类于 文章
字数统计: 73 | 阅读时长 ≈ 1

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

阅读全文 »

JavaGuide之各种锁

发表于 2018-01-05 | 分类于 技术
字数统计: 1.3k | 阅读时长 ≈ 4

背景

多线程的本质其实就是各种线程对静态资源的合理使用问题,怎么能最大限度发挥CPU性能执行任务。锁这种概念就是解决多个线程抢占资源问题的办法,当A线程使用资源时起时不希望B线程也去使用,因为如果同时操作静态资源会导致读写不一致等问题。

各种锁的分类

以下的分类都是站在不同角度对锁这种概念的分类,相互之间并没有必然的关系。

阅读全文 »

JavaGuide之volatile

发表于 2018-01-04 | 分类于 技术
字数统计: 1.9k | 阅读时长 ≈ 6

背景

Java中并发程序正确地执行,必须要保证原子性、可见性以及有序性,只要有一个没有被保证,就有可能会导致程序运行不正确。

  • 原子性:一个操作或者多个操作要么全部执行完成且执行过程中不被中断,要么就不执行。
  • 可见性:当多个线程同时访问同一个变量时,一个线程修改了这个变量的值,其它线程能够立即看到修改的值。
  • 有序性:程序执行的顺序按照代码的先后顺序执行。

volatile其实就是解决上面“可见性”的关键字,它可以看作是轻量级的Synchronized,它保证了共享变量的可见性。为什么会存在可见性这种问题呢?下面看下Java的内存模型。

阅读全文 »
1…78
Ervin Zhang

Ervin Zhang

stay hungry, stay foolish

74 日志
3 分类
47 标签
RSS
GitHub E-Mail Twitter
© 2025 Ervin Zhang | Site words total count: 93.5k
本站访客数:次 |
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4