git使用rebase模式

一、概念上的用法:

1、同分支拉取使用:

git pull --rebase

2、不同分支衍合:

## local machine
(develop)$: git pull origin develop --rebase

## 切换到 feature 分支,衍合develop分支,如有冲突,解决冲突后continue,再次 commit
(develop)$: git checkout feature/user-extension
(feature/user-extension)$: git rebase develop
(feature/user-extension)$: ## ... 解决冲突
(feature/user-extension)$: git rebase --continue

(feature/user-extension)$: git commit origin feature/user-extension

二、本人实际用法:

同分支进行rebase,不同分支间进行merge。

其中同分支有两种情况:

1、本地分支无任何最新提交,远程有新提交。
执行 git pull 直接拉取即可。

2、本地分支有新提交,远程也有新提交。
执行 git pull –rebase 衍合远程分支。

参考:

http://blog.csdn.net/jackystudio/article/details/12309627

http://git-scm.com/book/zh/v1/Git-分支-分支的衍合

http://blog.isming.me/2014/09/26/git-rebase-merge/

http://blog.yorkxin.org/posts/2011/07/29/git-rebase/

http://hy2014.github.io/2014/07/25/git-rebase/

http://segmentfault.com/q/1010000000181403

继续阅读~ 参与评论~

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并上线。

继续阅读~ 参与评论~

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)服务器(32)移动开发(4)自然(22)