飞污熊博客

静下心来做一件事

这一篇会介绍git的一些常用技巧,开发中经常会遇到的问题,让我们感受git的强大之处。

cherry-pick我直接把它翻译成’摘樱桃’可以不?

git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作。假设我们有个稳定版本的分支master, 另外还有个开发版本的分支dev,我们不能直接把两个分支合并,这样会导致稳定版本混乱,但是又想增加一个dev中的功能到master中, 这里就可以使用cherry-pick了,其实也就是对已经存在的commit 进行再次提交。

简单用法:

1
git cherry-pick <commit id>

注意:当执行完 cherry-pick 以后,将会生成一个新的提交;这个新的提交的哈希值和原来的不同,但描述一样;

做一个简单演示,一个readme.txt文件、两个分支(master/dev)

阅读全文 »

GitHub用了这么久才发现其实上面也可以做很多好玩的东西,让我可以更加喜欢它了。 这里我总结自己知道的,肯定还有一些我还不知道的,以后看到了就补充上去。

拖拽代码到Gist,打开https://gist.github.com/,然后直接把本地源文件拖过去,它里面的代码就移过去了。

阅读全文 »

在实际使用git的过程中,我发现最常遇到的就是撤销,git里面有reset、checkout、revert来帮助我们撤回修改。 但是这几个命令有时候不是很好理解,虽然我在第一篇里面已经讲解过撤销,但是我还是想用专门用一篇来详细讲解如何撤销版本和文件。

之前只是讲了几个简单的命令教你怎么撤销,但是其中的原理如果你不懂的话就不会很好的使用这几个命令。 参考《Pro Git》第2版本中的重置揭密部分,为大家揭开撤销的原理和神秘面纱。

阅读全文 »

Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早, 肯定只有一台机器有一个原始版本库,此后,别的机器可以”克隆”这个原始版本库, 而且每台机器的版本库其实都是一样的,并没有主次之分。

实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机, 其他每个人都从这个”服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里, 也从服务器仓库中拉取别人的提交。也就是说这个”服务器”只不过是用来作为一个桥梁, 提供给各个主机进行修改的交换。

阅读全文 »

终于要介绍git的杀手级特性分支了,这也是大部分人使用git的原因。 其他版本控制系统如SVN等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比蜗牛还慢, 简直让人无法忍受,结果分支功能成了摆设,大家都不去用。 Git的分支是与众不同的,无论创建、切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1个文件还是1万个文件。

阅读全文 »

很早就想些一篇关于git的文章了,这玩意儿实在好用,但是内容又比较多, 这里我讲解最基本使用技巧,这个足以应对99%以上的场景,剩下那些真的要用到就去看官网手册。

Git是目前世界上最先进的分布式版本控制系统(没有之一),它的诞生也是个很有趣的故事。 大家都知道Git是Linus大神写的,据说刚开始的时候,linux内核源码使用BitKeeper这个商业版本控制系统, BitKeeper授权Linux社区免费使用,但是某一天开发Samba的Andrew这个家伙试图破解BitKeeper协议,东窗事发。 于是BitKeeper公司一怒之下收回了免费使用权。Linus大神是不可能去道歉的,于是他就花了2个星期用C语言写了Git, 一个月内,Linux源码就由Git管理了,无敌是多么寂寞 →_→

阅读全文 »

Read the Docs是一个在线文档托管服务, 你可以从各种版本控制系统中导入文档,如果你使用webhooks, 那么每次提交代码后可以自动构建并上传至readthedocs网站,非常方便。

一般来讲,这个非常适合写软件文档以及编写一些教程、电子书之类。对于一些一两篇文章就能写清楚的可以记笔记或写博客, 但是如果要写成一个系列的,不如写成一本书的形式,更美观,也更系统。

现有的写电子书的方式,有以下几个解决方案,优劣势也很明显:

  • 写博客,跟散文堆在一起,不便索引。
  • GitHub Wiki,适合做知识整理,但排版一般,不方便查看。
  • GitBook,样式不好看,访问速度慢。

经过比较最后锁定Sphinx + GitHub + ReadtheDocs 作为文档写作工具,用 Sphinx 生成文档,GitHub 托管文档,再导入到 ReadtheDocs。

阅读全文 »

web开发的过程中一定会遇到 cgi、wsgi 之类的名词,然后看着他们十分相似的解释估计还没开始写代码就晕了,这都什么鬼? 今天我就聊聊这些容易搞混的名称。

CGI(Common Gateway Inteface)

字面意思就是通用网关接口,它是外部应用程序与Web服务器之间的接口标准,规定一个程序该如何与web服务器程序之间通信。 当然,CGI 只是一个很基本的协议,在现代常见的服务器结构中基本已经没有了它的身影,更多的则是它的扩展和更新。

阅读全文 »

TLS(transport layer security), 和它的后继者SSL是一个安全套接字层协议,是为了给普通的网络传输内容加密传输而来。

网站转成https是大势所趋。但是在国内,推进的过程显然要比国外慢很多。

现阶段如果将自己的网站改成https以后,会碰到这样的尴尬现象:如果在页面上引用了http://的链接或者图片, 用户在浏览器上会看到类似该网站是非安全网站的警告,对于网站运营者来说可以说非常冤。由于很多链接是第三方的,没有办法去控制。 对于api接口类的网站,就不存在混合的问题,所以首先应该从api后台接口部分开始用https。(ios已经强制要求接口地址必须为https了)

本章专门来讲解在nginx中如何配置https访问。

首先要明确的是要支持https就必须要有证书,这个证书可以是自己生成的,也可以从CA机构申请,在测试阶段可以自己生成, 但是如果要部署到生产环境,最好去CA机构申请,有免费和收费的证书,同时还分不同的证书种类。

阅读全文 »