YonderGit: Simplified Git Remote Repository Management

One of the great strengths of Git is the multiple and flexible ways of handling remote repositories. Just like Subversion, they can be “served” out of a location, but more generally, if you can reach it from your computer through any number of ways (ssh, etc.), you can git it. YonderGit wraps up a number of a common operations with remote repositories: creating, initializing, adding to (associating with) the local repository, removing, etc. You can clone your own copy of the YonderGit code repository using:

git clone git://github.com/jeetsukumaran/YonderGit.git

Or you can download an archive directly here: http://github.com/jeetsukumaran/YonderGit/archives/master. After downloading, enter “sudo python setup.py” in the YonderGit directory to install. This will just copy the “ygit.py” script to your system path. After that, enter “ygit.py commands?” for a summary of possible commands, or “ygit.py --help” for help on options.

Quick Summary of Commands

$ ygit.py setup

Create directory specified by “REPO-URL”, using either the “ssh“ or local filesystem transport protocol, initialize it as repository by running “git init”, and add it as a remote called “NAME” of the local git repository. Will fail if directory already exists.

$ ygit.py create

Create directory specified by “REPO-URL”, using either the “ssh“ or local filesystem transport protocol, and then initialize it as repository by running “git init”. Will fail if directory already exists.

$ ygit.py init

Initialize remote directory “REPO-URL” as a repository by running “git init” in the directory. Will fail if directory does not already exist.

$ ygit.py add

Add “REPO-URL” as a new remote called “NAME” of the local git repository.

$ ygit.py delete

Recursively remove the directory “REPO-URL” and all subdirectories and files.

Valid Repository URL Syntax

Secure Shell Transport Protocol

  • ssh://user@host.xz:port/path/to/repo.git/
  • ssh://user@host.xz/path/to/repo.git/
  • ssh://host.xz:port/path/to/repo.git/
  • ssh://host.xz/path/to/repo.git/
  • ssh://user@host.xz/path/to/repo.git/
  • ssh://host.xz/path/to/repo.git/
  • ssh://user@host.xz/~user/path/to/repo.git/
  • ssh://host.xz/~user/path/to/repo.git/
  • ssh://user@host.xz/~/path/to/repo.git
  • ssh://host.xz/~/path/to/repo.git
  • user@host.xz:/path/to/repo.git/
  • host.xz:/path/to/repo.git/
  • user@host.xz:~user/path/to/repo.git/
  • host.xz:~user/path/to/repo.git/
  • user@host.xz:path/to/repo.git
  • host.xz:path/to/repo.git
  • rsync://host.xz/path/to/repo.git/

Git Transport Protocol

  • git://host.xz/path/to/repo.git/
  • git://host.xz/~user/path/to/repo.git/

HTTP/S Transport Protocol

  • http://host.xz/path/to/repo.git/
  • https://host.xz/path/to/repo.git/

Local (Filesystem) Transport Protocol

  • /path/to/repo.git/
  • path/to/repo.git/
  • ~/path/to/repo.git
  • file:///path/to/repo.git/
  • file://~/path/to/repo.git/
Share