0%

利用 GitHook 构建持续交付和部署

Git 钩子

和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本。 有两组这样的钩子:客户端的和服务器端的。 客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。 你可以随心所欲地运用这些钩子。本文只介绍服务器端钩子。

安装一个钩子

钩子都被存储在 Git 目录下的 hooks 子目录中。 也即绝大部分项目中的 .git/hooks 。 当你用 git init 初始化一个新版本库时,Git 默认会在这个目录中放置一些示例脚本。这些脚本除了本身可以被调用外,它们还透露了被触发时所传入的参数。 所有的示例都是 shell 脚本,其中一些还混杂了 Perl 代码,不过,任何正确命名的可执行脚本都可以正常使用 —— 你可以用 Ruby 或 Python,或其它语言编写它们。 这些示例的名字都是以 .sample 结尾,如果你想启用它们,得先移除这个后缀。

把一个正确命名且可执行的文件放入 Git 目录下的 hooks 子目录中,即可激活该钩子脚本。 这样一来,它就能被 Git 调用。

阅读全文 »

配置 Pip 源

Pip 源配置文件可以放置的位置

Linux/Unix

  • /etc/pip.con
  • ~/.pip/pip.conf
  • ~/.config/pip/pip.conf

Mac OSX

  • ~/Library/Application Support/pip/pip.conf
  • ~/.pip/pip.conf
  • /Library/Application Support/pip/pip.conf

Windows

  • %APPDATA%\pip\pip.ini
  • %HOME%\pip\pip.ini
  • C:\Documents and Settings\All Users\Application Data\PyPA\pip\pip.conf (Windows XP)
  • C:\ProgramData\PyPA\pip\pip.conf (Windows 7及以后)
阅读全文 »

如何自己搭建git服务器

准备

  • 可以用 SSH 访问的服务器

在服务器上安装git

如果要在 Linux 上安装预编译好的 Git 二进制安装包,可以直接用系统提供的包管理工具。在 Fedora 上用 yum 安装:

1
yum install git-core

在 Ubuntu 这类 Debian 体系的系统上,可以用 apt 安装:

1
sudo apt install git
阅读全文 »

SSH配置文件详解

配置文件~/.ssh/config/etc/ssh/ssh_config

一般不需要修改OpenSSH客户端配置文件。
对于给定用户,共有两个配置文件:~/.ssh/config(用户专用)和/etc/ssh/ssh_config(全局共享)。
要按照该顺序读取这些文件,对于给定的某个参数,它使用的是读取过程中发现的第一个配置。用户可以通过以下方式将全局参数设置覆盖掉:在自己的用户配置文件中设置同样的参数即可。
sshscp命令行上给出的参数的优先级要高于这两个文件中所设置的参数的优先级。
用户的~/.ssh/config文件必须由该用户所有(他是目录"~/"的所有者),并且除了所有者之外任何人都不能写入该文件。
否则客户端就会给出一条错误消息然后退出。
这个文件的模式通常被设为 600,这是因为除了它的所有者之外任何人没有理由能够读取它。

这些配置文件中的配置行包含着声明,这些声明均以某个关键字(不区分大小写)开头,后面跟着空格,最后是参数(区分大小写)。
可以使用关键字Host,让声明只作用于特定的系统。Host声明作用于它与下一条Host声明之间的所有配置行。

阅读全文 »

Hello World

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
hexo new "My New Post"

More info: Writing

Run server

1
hexo server

More info: Server

Generate static files

1
hexo generate

More info: Generating

Deploy to remote sites

1
hexo deploy

More info: Deployment