Git deployer plugin for Hexo.
Latest commit 83fc0df Dec 2, 2016 @NoahDragon NoahDragon committed on GitHub Add test case for #53 (#55)
* Add test case for #53

* Update deployer.js

* Update deployer.js

* Update deployer.js

* Update deployer.js


Build Status NPM version Coverage Status Build status

Git deployer plugin for Hexo.


$ npm install hexo-deployer-git --save


You can configure this plugin in _config.yml.

# You can use this:
  type: git
  repo: <repository url>
  branch: [branch]
  message: [message]
  name: [git user]
  email: [git email]
  extend_dirs: [extend directory]
  ignore_hidden: false # default is true

# or this:
  type: git
  message: [message]
    github: <repository url>,[branch]
    gitcafe: <repository url>,[branch]
    - [extend directory]
    - [another extend directory]
    public: false
    [extend directory]: true
    [another extend directory]: false
  • repo: Repository URL
  • branch: Git branch to deploy the static site to
  • message: Commit message. The default commit message is Site updated: {{ now('YYYY-MM-DD HH:mm:ss') }}.
  • name and email: User info for committing the change, overrides global config. This info is independent of git login.
  • extend_dirs: Add some extensions directory to publish. e.g demo, examples
  • ignore_hidden (Boolean|Object): whether ignore hidden files to publish. the github requires the .nojekyll in root.
    • Boolean: for all dirs.
    • Object: for public dir and extend dir:
      • public: the public dir defaults.
      • [extend directory]

How it works

hexo-deployer-git works by generating the site in .deploy_git and force pushing to the repo(es) in config. If .deploy_git does not exist, a repo will initialized (git init). Otherwise the curent repo (with its commit history) will be used.

Users can clone the deployed repo to .deploy_git to keep the commit history.

git clone <gh-pages repo> .deploy_git


Remove .deploy_git folder.

$ rm -rf .deploy_git