Manage a non-bare Git repository
@return [Pathname]
Check out the given Git ref
@param ref [String] The git reference to check out
Clone this git repository
@param remote [String] The Git remote to clone @param opts [Hash]
@options opts [String] :ref The git ref to check out on clone @options opts [String] :reference A Git repository to use as an alternate object database
@return [void]
@return [Pathname] The path to the Git directory inside of this repository
@return [String] The currently checked out ref
@return [String] The origin remote URL
[Validate]