git阻止本地有冲突文件时候push

目的是防止新手乱操作,老手误操作。

在每个git项目根目录下有个隐藏文件夹.git, 该文件夹下有个hooks目录,复制hooks目录下的pre-push.smaple并更名为pre-push文件,即 项目根目录/.git/hooks/pre-push 文件,编辑粘贴以下代码:

#!/bin/sh
git diff-tree --no-commit-id --name-only HEAD -z -- |
xargs -0 sh -c '
    for f; do
        if git show :"$f" | grep "< <<<<<< HEAD"; then
            echo "$f has some conflicts,can not push"
            exit 1;
        fi
        if git show :"$f" |grep ">>>>>>>"; then
            echo "$f has some conflicts,can not push"
            exit 1;
        fi
    done
    exit 0;
' -

然后保存即可。

来源于:http://blog.sina.com.cn/s/blog_61d8d9640102vaht.html

继续阅读~ 参与评论~

Git回退取消文件内容修改

修改了项目中的文件并且还未提交,如果想回退放弃当前的修改,可以用以下命令:

git checkout -- <filename>

如果想放弃当前所有的修改,使用:

git checkout -f

或者:

git reset --hard

参考: http://gitready.com/beginner/2009/01/11/reverting-files.html

继续阅读~ 参与评论~

js浮点数的四则精确计算

js的浮点数类型值在参与四则运算时,有时候会产生不正确数据,这是编程语言的通病,因为计算机是二进制的。
比如一个简单的加法:268.34 + 0.83,js得出的结果是269.16999999999996。类似的加减乘除有很多。

因此需要一个精确计算的方法,来保证精确度。Github上有几个Math库,一般项目使用未免太大。这里贴出一个从http://www.cnblogs.com/junjieok/p/3306155.html而来的轻量方法,已足够使用。
代码如下:

继续阅读~ 参与评论~

IE9的输入框oninput事件不支持退格删除

IE9中,input输入框绑定的oninput事件,无法监听到键盘的backspace delete和右键菜单的剪切、撤销、删除对内容的改变。
虽然onkeyup可以解决键盘问题,但对右键还是无法解决。所以,有种解决方法如下:

<input id="myInput" type="text">

<script>
  // Get the input and remember its last value:
  var myInput = document.getElementById("myInput"), 
      lastValue = myInput.value;
  
  // An oninput function to call:
  var onInput = function() {
    if (lastValue !== myInput.value) { // selectionchange fires more often than needed
      lastValue = myInput.value;
      console.log("New value: " + lastValue);
    }
  };
  
  // Called by focus/blur events:
  var onFocusChange = function(event) {
    if (event.type === "focus") {
      document.addEventListener("selectionchange", onInput, false);
    } else {
      document.removeEventListener("selectionchange", onInput, false);
    }
  };
  
  // Add events to listen for input in IE9:
  myInput.addEventListener("input", onInput, false);
  myInput.addEventListener("focus", onFocusChange, false);
  myInput.addEventListener("blur", onFocusChange, false);
</script>

参考:http://www.matts411.com/post/internet-explorer-9-oninput/

继续阅读~ 参与评论~

谷歌计划去除SPDY 推全新协议HTTP/2

今天Google宣布,将很快从 Chrome 去除 SPDY 支持 。这是因为 IETF 一直在努力更打造一种全新的协议:HTTP/2.

HTTP/2 采用了 SPDY 的一些特点,如多路复用技术,并使用一套略有不同的 TLS 扩展。鉴于 HTTP/2 实现和 SPDY 同样的事情,权衡之下,抛弃 SPDY 对于行业标准建立是有利的。

来源:http://www.cnbeta.com/articles/369575.htm
关于SPDY:Google协议SPDY

继续阅读~ 参与评论~

Git一种分支策略

小团队适用,仅2个常设分支:
1、master
2、tester

master上是稳定线上版本,之后的新功能开发,功能修改,bug处理等都从master开出分支,然后合并到tester分支上,发布测试。
tester可以随意删除,仅从master分出,随时等待其他开发分支合并进来并上测试环境。

1个临时分支:
release

release分支用于上线前,从master开出,各类通过测试的功能分支,bug修复分支等,合并到release分支,进行上线前预测,当release分支没有发现问题后,合并回master,设置tag,然后上线。上线后可删除release分支。

紧急bug处理,需要修复后立即上线的,流程是:由master开出分支fix-xx-bug,合并到tester测试,无问题后直接合并回master并上线。

继续阅读~ 参与评论~

Gulp.js及前端静态资源管理参考

传送门:

http://viget.com/extend/gulp-browserify-starter-faq

http://stefanimhoff.de/2014/gulp-tutorial-13-revisioning/

http://www.dbpoo.com/getting-started-with-gulp/

https://phphub.org/topics/49

https://github.com/fouber/blog/issues/3

http://js8.in/categories/前端开发/

http://mweb.baidu.com/p/baidusearch-front-end-road.html

http://fex.baidu.com/blog/2014/04/fis-static-resource-management/

继续阅读~ 参与评论~

1 2 3 4 5 6 7 26 27

全部分类
Books(4)code(7)database(6)html&css(24)java(11)JavaScript(48)jQuery(24)linux(20)python(1)React(1)share(1)soft(4)solution(53)thinking(17)vim(9)WordPress(8)前端优化(12)拓展(33)服务器(31)移动开发(4)自然(22)