git rebase相关

在本地commit之后,需要push到远端,如果远端已经有人push过会出现下面的error

1
2
3
4
5
error: failed to push some refs to '/path/to/repo.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

对,你需要pull,那么问题来了,如果只是git pull origin branch_name pull操作要同步远端仓库中别人修改时,提交历史会以一个多余的『合并提交』结尾。 对于集中式工作流,最好是使用rebase而不是生成一个合并提交。
所以,使用 git pull —rebase origin branch_name

rebase操作过程是把本地提交一次一个地迁移到更新了的中央仓库master分支之上。 这意味着可能要解决在迁移某个提交时出现的合并冲突,而不是解决包含了所有提交的大型合并时所出现的冲突。 这样的方式让你尽可能保持每个提交的聚焦和项目历史的整洁。反过来,简化了哪里引入Bug的分析,如果有必要,回滚修改也可以做到对项目影响最小。

如果A和B的功能是不相关的,不大可能在rebase过程中有冲突。如果有,Git在合并有冲突的提交处暂停rebase过程,输出下面的信息并带上相关的指令:

1
CONFLICT (content): Merge conflict in <some-file>

此时需要解决冲突并添加这些文件到暂存区,然后让rebase完成剩下的事

1
2
git add <some-file>
git rebase --continue

Git会继续一个一个地合并后面的提交,如其它的提交有冲突就重复这个过程。
如果你碰到了冲突,但发现搞不定,不要惊慌。只要执行下面这条命令,就可以回到你执行git pull --rebase命令前的样子:

1
git rebase --abort

解决php -v和phpinfo()打印的php版本不一致问题

####环境:
centos 6.5 + nginx + php-fpm

####问题描述:
源码编译安装php 5.6,并且在PATH里面添加了php执行文件目录。在终端下执行php -v打印的php版本为5.6。但是在浏览器上访问phpinfo()打印的页面,一直显示php5.3,神烦…

####解决步骤:
初步分析应该是机器上之前已经装过一个php5.3,然后每次请求的时候php-fpm会调用php5.3;

所以,卸载php5.3(此步骤不是必须),重要的是发请求的时候要让php-fpm调起php5.6。卸载老的php-fpm,或者stop掉,不然它会占着9000端口

因为php5.6是源码编译安装的,5.3以上php-fpm已经默认在源码包里面,编译的时候也已经enable了。cd到php5.6安装目录下的sbin,里面果然有个php-fpm执行文件,./php-fpm,报错了 failed to load configuration file。去源码目录(执行./configure的目录),把php-fpm.conf拷一份到php5.6的安装目录下的/etc下面。

再执行./php-fpm。OK,打完收工!

phpstorm切换上载sftp

今天遇到一个蛋痛的问题。嗯,一定要记录一下
phpstorm里面本来已经有一个项目了,上载的配置啥的都配好了。现在需要更换上载的服务器,需要新加一个sftp配置。然后就是无法切换过来…

还是大google比较靠谱,stackoverflow上找到答案,如下

好吧改下OK了

iOS添加tabbar高亮图片

添加高亮图片本息并不麻烦

1
2
vc.tabBarItem.image = [UIImage imageNamed:[obj objectForKey:@"image"]];
vc.tabBarItem.selectedImage = [UIImage imageNamed:[obj objectForKey:@"image_h"]];

添加完毕,但是坑来了。每次启动app的时候发现第一个(home)tab显示如下,切换几下又正常了
pic

1
vc.tabBarItem.selectedImage = [[UIImage imageNamed:[obj objectForKey:@"highlight_image"]] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];

问题解决,主要是改了下高亮图的渲染模式,UIImageRenderingModeAlwaysOriginal 始终绘制图片原始状态,不使用TintColor。renderingMode属性的默认值是UIImageRenderingModeAutomatic,即UIImage是否使用Tint Color取决于它显示的位置。

nginx php-fpm访问php文件,File not found.

好久不写php,今天搭配个环境,访问php文件的时候居然出现File not found. 惭愧
解决方案记录一下
在nginx.conf中的默认配置中, 对于php-fpm的配置是有问题的. SCRIPT_FILENAME的配置有问题. 原配置中的值为/scripts$fastcgi_script_name, 需要修改为$document_root$fastcgi_script_name, 这样才能使路径随着上面设置的root进行变化, 否则当访问一个php文件时就会出现File not found的问题.

11.27组内分享--http协议

###1、HTTP,超文本传输协议

###2、模拟用户登录

###3、使用fiddler抓包


##http,超文本传输协议
a、http是一个基于应用层的通信规范,即通信双方共同遵守的一个协议
OSI模型

b、承载于TCP协议之上,htts承载于TLS或SSL协议之上
HTTP协议在OSI模型中的位置

c、TCP的三次握手(约么-> 约-> 好,我出发了)和HTTP的复用
TCP三次握手详解,戳这里

d、一问一答模式,无状态(cookie/session)

e、请求头 Method Request-URI HTTP-Version CRLF(结尾符,回车或换行)
请求的方法:GET POST HEAD PUT DELETE TRACE CONNECT OPTIONS 共8种

f、响应头 HTTP-Version Status-Code Reason-Phrase CRLF
常见状态码 404 500 403 200

g、几个重要的报头讲解
host
user-agent
scheme 指定底层使用的协议,如http、https、ftp等
referer
content-range 响应资源范围,可实现分段下载
cookie
也可自定义报头