git-workspace

CLI util to keep multiple projects in sync with different remote git repos

npm install git-workspace
1 downloads in the last week
12 downloads in the last month

NPM version Dependency Status

git-workspace

A command line utility to manage multiple git-based projects, when each one of them has a different remote repositories or possibly more then one remote repository.

If you are working with Node.js npm-workspace is the perfect companion to this utility

Stability

Experimental: use at your own risk

Prerequisites

  • Need the git executable in the PATH
  • Since this program is based on Node.js, you will need to install Node.js first
  • To install: npm install -g git-workspace

Usage

Definition: We will call workspace a directory containing a set of projects.

workspace
├── prj1
├── prj2
├── prj3
└── workspace.json

To get started create a workspace.json in your workspace dir. It will look like this:

{
  "repositories": {
    "default": {
      "prj1": "git+ssh://example.org/example/repo1"
    },
    "github": {
      "prj2": "git+ssh://example-github.org/example/repo2"
      "prj3": "git+ssh://example-github.org/example/repo3"
    }
  }
}

Repositories are aggregated into groups (in the example above default and github). The default group` provides the default remote repo if none is specified for a given project and is the one to be picked when no specific group is specified in the command line.

clone

$ cd workspace
$ git-workspace clone github

Will clone the remote group github (prj1, prj2, prj3) into the workspace. Project directories must be empty for the clone to succeed.

push

$ cd workspace
$ git-workspace push

Will push the group default (prj1) to the remote repo.

pull

$ cd workspace
$ git-workspace pull github

Will pull the changes of the group github (prj1, prj2, prj3) from the remote repo.

Licence

MIT

npm loves you