2.2.2 • Published 4 years ago

git-snapshot v2.2.2

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

git-snapshot

git-snapshot is a tool to take a snapshot of the directory and creates/updates another branch, like git subtree split --squash.

npm npm (beta) license downloads release semantic-release

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 of git
  • 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

To take a snapshot, subtree split vs snapshot

subtree splitsnapshot
git subtree split --rejoin --prefix=path/to/target snapshotgit snapshot --prefix=path/to/target --branch=snapshot
:+1: Official command- Contain all history:-1: Long commit log:-1: No squash option:-1: No support for moving target directory- No history:+1: Short commit log:+1: Fast operation:+1: 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 = require('git-snapshot')

// Options are the same as command line, except camelCase
// gitSnapshot returns a Promise
gitSnapshot({
  prefix: './Packages/SomePackage',
  branch: 'upm',
  message: 'Release 1.0.0',
  author: 'snapshot',
  force: false,
  tag: '1.0.0',
  remote: 'origin',
  dryRun: false,
  cwd: process.cwd(),
}).then(() => {
  // git-snapshot is done
}).catch(err => {
    console.error(`git-snapshot failed with message: ${err.message}`)
})

License

MIT

See Also

become_a_sponsor_on_github