git-snapshot
git-snapshot
is a tool to take a snapshot of the directory and creates/updates another branch, like git subtree split --squash
.
Summary
git-snapshot
is a tool to take a snapshot of the directory and creates/updates another branch, like git subtree split --squash
.
git-snapshot
is a sub-command ofgit
- Take a snapshot of the directory as a commit
- Simple and fast
- Unlike
git subtree split
, you can split from the directory in which you want
subtree split
vs snapshot
To take a snapshot, subtree split |
snapshot |
---|---|
git subtree split --rejoin --prefix=path/to/target snapshot |
git snapshot --prefix=path/to/target --branch=snapshot |
👍 Official command - Contain all history 👎 Long commit log 👎 No squash option 👎 No support for moving target directory |
- No history 👍 Short commit log 👍 Fast operation 👍 Any target directory |
Installation
Global installation
Install globally (add to your PATH
) and you can use git-snapshot as a git sub-command.
$ npm install -g git-snapshot
Local installation
For Node modules projects we recommend installing git-snapshot locally.
$ npm install --save git-snapshot
Usage
CLI Usage
usage: git snapshot --prefix=<path> --branch=<branch> --message=<message>
[--tag=<tag>] [--remote=<repository>] [--dry-run] [--cwd=<path>]
Required
--branch, -b the name of branch for split to [string] [required]
Options:
--help, -h Show help [boolean]
--version, -v Show version [boolean]
--prefix, -p the name of the subdir to split out [string]
--message, -m commit message [string]
--author, -a override the commit author [string]
--force, -f allow force commit, tag, push [boolean]
--tag, -t tag name [string]
--remote, -r remote repository [string]
--dry-run, -d skip publishing [boolean]
--debug output debugging information [boolean]
--cwd, -c working directory [string]
Code Usage
const gitSnapshot = // Options are the same as command line, except camelCase// gitSnapshot returns a Promise
License
MIT
See Also
- GitHub page : https://github.com/mob-sakai/git-snapshot
- Changelog : https://github.com/mob-sakai/git-snapshot/blob/master/CHANGELOG.md
- npm page : https://www.npmjs.com/package/git-snapshot
- gitgraph.js (a git graph tool) : https://github.com/nicoespeon/gitgraph.js/tree/master/packages/gitgraph-js
- semantic-release (a npm release tool) : https://github.com/semantic-release/semantic-release