func (g Git) Push(branch string) ([]byte, error) {
	if branch == "" {
		branch = "master"
	}
	cmd := exec.Command("git", "push", "-f", g.Repo, branch)
	cmd.Dir = g.Work
	cmd.Env = os.Environ()
	return cmd.CombinedOutput()
}
Push forces push to the branch to the remote repo
package hap
import (
	"fmt"
	"os"
	"os/exec"
)
type Git struct {
	Repo string
	Work string
	Key  string
}
func (g Git) Exists() error {
	o, err := exec.LookPath("git")
	if err != nil {
		return fmt.Errorf("%s\n%s", o, err)
	}
	return nil
}
func (g Git) Commit(message string) ([]byte, error) {
	cmd := exec.Command("git", "add", ".")
	cmd.Dir = g.Work
	result, err := cmd.CombinedOutput()
	if err != nil {
		return result, err
	}
	cmd = exec.Command("git", "commit", "-q", "-m", message)
	cmd.Dir = g.Work
	return cmd.CombinedOutput()
}
func (g Git) Branch(name string) ([]byte, error) {
	cmd := exec.Command("git", "branch", name)
	cmd.Dir = g.Work
	return cmd.CombinedOutput()
}
func (g Git) Checkout(name string) ([]byte, error) {
	cmd := exec.Command("git", "checkout", name)
	cmd.Dir = g.Work
	return cmd.CombinedOutput()
}