如何删除还没有被add到git的文件(git clean的用法)
2018-11-17 liyangcoder Web周边
git clean命令用来从你的工作目录中删除所有没有tracked过的文件
git clean经常和git reset --hard一起结合使用. 记住reset只影响被track过的文件, 所以需要clean来删除没有track过的文件. 结合使用这两个命令能让你的工作目录完全回到一个指定的<commit>的状态
用法
git clean -n
是一次clean的演习, 告诉你哪些文件会被删除. 记住他不会真正的删除文件, 只是一个提醒
git clean -f
删除当前目录下所有没有track过的文件. 他不会删除.gitignore文件里面指定的文件夹和文件, 不管这些文件有没有被track过
git clean -f <path>
删除指定路径下的没有被track过的文件
git clean -df
删除当前目录下没有被track过的文件和文件夹
git clean -xf
删除当前目录下所有没有track过的文件. 不管他是否是.gitignore文件里面指定的文件夹和文件
标签: git
libxml2和libxml2-dev的区别
2018-11-14 liyangcoder 服务器
在我们编译安装PHP时,经常会报出类似的错误:
configure: error: libxml2 not found. Please check your libxml2 installation.
字面意思很容易理解,是说没找到libxml2,但是如果我们搜索一下系统,会发现libxml2是安装过的,而且我们再使用包管理工具(apt-get/yum)来安装,会提示libxml2已安装:
libxml2 is already the newest version.
这是为什么呢?
JavaScript中的addEventListener自定义事件
2018-9-17 liyangcoder JavaScript
说到JavaScript事件,我们首先就能想到click事件、submit事件等等。但是有时候这些预定义的事件并不能满足我们的需求,比如在提供给第三方的SDK中。
由于SDK运行的环境非常复杂,第三方业务中有什么代码我们无法预知,这可能会导致事件冲突的问题,这时候我们就需要自定义事件来避免此类冲突了。
使用left join代替not in
2018-9-11 liyangcoder MySQL
有这样的需求:查找在A表中存在,而在B表中不存在的数据,首先我们想到的应该是使用not in来查询。
构建的sql是这样的:
select * from a where a.username not in (select username from b)
看上去这个SQL并没有什么不妥,事实上,当两张表的数据量都不大情况下,确实也什么问题。
如果数据量大了,我们给两张表的username都加上索引,以为可以万事大吉了,可以实际发现username的索引并没有被使用。
那么如何解决这个问题呢?我们可以使用jeft join来曲线解决这个问题:
select a.* from a left join b on a.username=b.username where b.username is not null
这样一来,索引就可以被使用上了,效率大大提高。
父页面于iframe通信
2018-7-18 liyangcoder HTML
下面是一个iframe和父页面相互通信的demo,其中使用了一个非常方便的方法postMessage,但是有时候,我们的子页面可能会包含其他业务逻辑,这里面如果也用到了postMessage,就难免会产生冲突,这时候,我们可以使用自定义事件来解决。标签: iframe
linux shell 获取当前正在执行脚本的绝对路径
2018-6-6 liyangcoder 服务器
workdir=$(cd $(dirname $0); pwd)
解释:
步骤1
dirname $0,取得当前执行的脚本文件的父目录
步骤2
cd到父目录,即进入当前工作目录
步骤3
pwd显示当前工作目录
git 修改.gitignore后生效<转>
2018-6-2 liyangcoder Web周边
在使用git的时候我们有时候需要忽略一些文件或者文件夹。我们一般在仓库的根目录创建.gitignore文件
在提交之前,修改.gitignore文件,添加需要忽略的文件。然后再做add commit push 等
但是有时在使用过称中,需要对.gitignore文件进行再次的修改。这次我们需要清除一下缓存cache,才能是.gitignore 生效。
具体做法:
git rm -r --cached . #清除缓存 git add . #重新trace file git commit -m "update .gitignore" #提交和注释 git push origin master #可选,如果需要同步到remote上的话
PECL、PEAR、phpize、composer 的区别和联系
2018-5-6 liyangcoder PHP
首先,我们先分别了解一下这四个东西的官方介绍。
PECL:
PECL是PHP扩展的存储库,提供了所有已知的扩展和托管设施的目录,用于下载和开发PHP扩展。
PECL使用的包装和分配系统与它的姐妹PEAR共享。
PEAR:
PEAR是一个可重用PHP组件的框架和分发系统。
phpize:
用 phpize 编译共享 PECL 扩展库。
有时候不能用 pecl 安装命令。这可能是因为在防火墙后面,或者是因为想要安装的扩展库还没有 PECL 兼容的包,例如 SVN 中尚未发布的扩展库。如果要编译这种扩展库,可以用更底层的编译工具来手工进行编译。
Composer:
是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
docker中的Nginx镜像中的nginx:alpine是什么意思?
2018-5-4 liyangcoder 服务器
因为相比nginx:latest
,nginx:alpine
有几点优势:
Alpine的更多请看《Alpine Linux,一个只有5M的Docker镜像》。
如要进入alpine容器,命令是(后面的路径不是/bin/bash):
$ docker exec -it dnmp_nginx_1 /bin/sh
js多级返回上一级页面时出现的死循环解决方法
2018-5-2 liyangcoder JavaScript
history.go(-1)是js返回上一级的方法,很容易实现让页面从哪来回哪去,简单好用,但是如果我们有多级页面,这个方法会出现死循环。
比如我们访问页面的顺序是A->B->C,在C页面点击返回,会跳到B页面,在B页面再点击返回,就到了C页面,并不是我们期望的A页面,这样就出现了死循环,导致无论如何我无法返回到A页面。
解决方法:
It's me!
liyangcoder
.:.:.:.:.:.:.:.
一个用着普通人不理解的语法和符号,与某个世界的自然法则相沟通,进而实现人类需要的奇迹的人,相当于远古时代的 巫师 ……
哥从不会寂寞
-
因为有陪着哥~~~
最新评论
- 李杨
咋俩同名哎,我闲的没事做 搜索自己的名字... - repostone
https也快能拦截了。 - Am
有女朋友吗 - Tww
你现在在腾讯工作吗? - 高中作文
感谢分享 - 网站建设
学习了 - 独爱
大神 安装libxml2-devel 总... - 网站建设
文章不错 - 网站建设
很好的分享 - 天津网站建设
很给力,学习了。
听我说
- 从2018年冬天开始,有时候想要喝热水了,之前都是一年四季凉水,冬天都恨不得喝冰水!这可能是一个需要记录的时刻……
2019-01-08 14:16
- 记得上小学的时候,老师说文章的标题要尽量概括文章的内容,但是现在发现,我们看到一篇文章,却就是不告诉你真实的内容。这是进步吗?
2016-11-17 23:44
- 由于将博客放在了一个不靠谱的服务器上,导致所有附件和站内图片以及少量博客和朋友们的留言丢失。后面我会逐渐将附件和图片补上,至于一些内容,怕是找不回来了~~~
2016-06-25 17:05
- 如果我发明一副美颜眼镜,带上后,男人不会嫌女人不漂亮了,女人也不会嫌男人不帅了,岂不是随时都能赏心悦目了?全国人民都强制佩戴,和谐社会立马就实现了,这玩意必定大卖啊!哈哈哈~~~
2016-02-11 23:24
- 问:产品经理哪些话最暴露对编程的无知?
答:为什么要这么久?
2015-07-02 12:29
那些日子
- 2020年12月(1)
- 2020年11月(2)
- 2020年10月(1)
- 2020年9月(1)
- 2020年8月(1)
- 2020年3月(4)
- 2020年2月(3)
- 2020年1月(1)
- 2019年12月(1)
- 2019年11月(1)
- 2019年9月(2)
- 2019年8月(1)
- 2019年7月(1)
- 2019年6月(1)
- 2019年5月(1)
- 2019年4月(2)
- 2019年3月(4)
- 2018年12月(1)
- 2018年11月(3)
- 2018年9月(2)
- 2018年7月(1)
- 2018年6月(2)
- 2018年5月(3)
- 2018年4月(4)
- 2018年3月(1)
- 2018年1月(2)
- 2017年11月(2)
- 2017年10月(1)
- 2017年9月(3)
- 2017年8月(1)
- 2017年7月(3)
- 2017年6月(3)
- 2017年5月(1)
- 2017年4月(3)
- 2017年3月(1)
- 2017年2月(2)
- 2017年1月(1)
- 2016年12月(1)
- 2016年11月(3)
- 2016年10月(4)
- 2016年9月(2)
- 2016年8月(10)
- 2016年7月(2)
- 2016年6月(7)
- 2016年5月(3)
- 2016年4月(1)
- 2016年3月(1)
- 2016年2月(3)
- 2016年1月(3)
- 2015年12月(6)
- 2015年11月(4)
- 2015年10月(6)
- 2015年9月(4)
- 2015年8月(4)
- 2015年7月(2)
- 2015年6月(1)
- 2015年5月(3)
- 2015年4月(2)
- 2015年3月(1)
- 2015年2月(1)
- 2015年1月(1)
- 2014年12月(1)
- 2014年11月(4)
- 2014年10月(4)
- 2014年9月(5)
- 2014年8月(4)
- 2014年7月(7)
- 2014年6月(15)
- 2014年5月(10)
- 2014年4月(9)
- 2014年3月(5)
- 2014年2月(8)
- 2014年1月(6)
- 2013年12月(12)
- 2013年11月(33)
- 2013年10月(25)
- 2013年9月(10)
- 2013年8月(10)
- 2013年7月(12)
- 2013年6月(16)
- 2013年5月(1)
- 2013年4月(2)