Git Go (Ruby) has been:
- Ported to Go(lang).
- Compiles to machine code.
- Doesn't require a VM (like the Ruby VM).
- Has no runtime dependencies.
- Renamed to PGit.
- Moved to a different repository.
This project is no longer supported. Consider using PGit instead.
Git Go is a small command-line utility distributed as a RubyGem that allows you to easily create/destroy/rename/list/clip all your private-hosted git repositories on your own server. All you need is a small VPS (256MB RAM / 10GB HDD / 1vCPUCore should be sufficient).
Git Go also provides you with detailed instructions on how to set up your server in order to be able to create remote repositories from your local machine using the provided command-line utility. The instructions also show you how to set up automatic/daily compressed/archived backups of all your git repositories, store them on Amazon S3, cycle them and send you success/error notifications by email, all using the Backup RubyGem. It's easy, and only takes a few minutes to set up.
Git Go is tested against:
- Ruby 1.9.3, 1.9.2, 1.8.7
- Rubinius 1.8 mode, 1.9 mode
It should work with JRuby, but it's currently untestable due to issues with
Process.waitpid is only used in the test environment, not in the distributed gem you'll be using.
Get Git Go
Install Git Go with the following command:
gem install git_go
This will provide you with the
gg executable. Simply run it without any arguments to see the list of tasks it can perform.
$ gg Tasks: gg clip NAME # Add the Git URL for NAME to your clipboard (Mac OSX only) gg create NAME # Create a new remote repository named NAME gg destroy NAME # Destroy the remote repository named NAME gg help [TASK] # Describe available tasks or one specific task gg instructions # Display a detailed guide to setup Git Go locally and remotely gg list # Display a list of all the remote repositories and their URL gg rename NAME NEW_NAME # Rename the remote repository named NAME to NEW_NAME
I recommend you run
gg instructions to get up and running. The instructions cover:
- Setting up an environment variable in your
- Adding a
gituser to your remote machine.
- Setting up your SSH key.
- Setting up the Backup RubyGem to perform daily backups with:
- GZip Compression
- Email Notification on success/warning/error
- Amazon S3 storage
- Cycling (e.g. 30 day backup retention, then pop old backups for new backups)
"Git Go" is released under the MIT License. See