git

package
v1.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 8, 2020 License: Apache-2.0 Imports: 3 Imported by: 13

Documentation

Overview

Package git Main package of the git commands.

Reference: https://git-scm.com/docs/

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Add added in v0.17.0

func Add(options ...types.Option) (string, error)

Add https://git-scm.com/docs/git-add

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/add"
	"github.com/ldez/go-git-cmd-wrapper/git"
)

func main() {
	out, _ := git.Add(add.All, git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git add --all

func Branch added in v0.6.0

func Branch(options ...types.Option) (string, error)

Branch https://git-scm.com/docs/git-branch

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/branch"
	"github.com/ldez/go-git-cmd-wrapper/git"
)

func main() {
	out, _ := git.Branch(branch.DeleteForce, branch.BranchName("myBranch"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git branch -D myBranch

func Checkout

func Checkout(options ...types.Option) (string, error)

Checkout https://git-scm.com/docs/git-checkout

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/checkout"
	"github.com/ldez/go-git-cmd-wrapper/git"
)

func main() {
	out, _ := git.Checkout(checkout.NewBranch("myBranchName"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git checkout -b myBranchName

func Clone

func Clone(options ...types.Option) (string, error)

Clone https://git-scm.com/docs/git-clone

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/clone"
	"github.com/ldez/go-git-cmd-wrapper/git"
)

func main() {
	out, _ := git.Clone(clone.Repository("git@github.com:ldez/go-git-cmd-wrapper.git"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git clone git@github.com:ldez/go-git-cmd-wrapper.git

func CmdExecutor added in v0.22.0

func CmdExecutor(executor types.Executor) types.Option

CmdExecutor Allow to override the Git command call (useful for testing purpose)

func Commit added in v0.16.0

func Commit(options ...types.Option) (string, error)

Commit https://git-scm.com/docs/git-commit

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/commit"
	"github.com/ldez/go-git-cmd-wrapper/git"
)

func main() {
	out, _ := git.Commit(commit.Amend, commit.Message("chore: foo"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git commit --amend --message="chore: foo"

func Cond

func Cond(apply bool, options ...types.Option) types.Option

Cond apply conditionally some options

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/git"
	"github.com/ldez/go-git-cmd-wrapper/push"
)

func main() {
	param := false
	out, _ := git.Push(push.All, git.Cond(param, push.DryRun), push.FollowTags, push.ReceivePack("aaa"), git.CmdExecutor(cmdExecutorMock))

	fmt.Print(out)

	param = true
	out, _ = git.Push(push.All, git.Cond(param, push.DryRun), push.FollowTags, push.ReceivePack("aaa"), git.CmdExecutor(cmdExecutorMock))

	fmt.Print(out)

}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git push --all --follow-tags --receive-pack=aaa
git push --all --dry-run --follow-tags --receive-pack=aaa

func Config

func Config(options ...types.Option) (string, error)

Config https://git-scm.com/docs/git-config

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/config"
	"github.com/ldez/go-git-cmd-wrapper/git"
)

func main() {
	out, _ := git.Config(config.Entry("rebase.autoSquash", "true"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git config rebase.autoSquash true

func Debug

func Debug(g *types.Cmd)

Debug display command line

func Debugger added in v0.4.1

func Debugger(debug bool) types.Option

Debugger display command line

func Fetch

func Fetch(options ...types.Option) (string, error)

Fetch https://git-scm.com/docs/git-fetch

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/fetch"
	"github.com/ldez/go-git-cmd-wrapper/git"
)

func main() {
	out, _ := git.Fetch(fetch.NoTags, fetch.Remote("upstream"), fetch.RefSpec("myBranchName"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git fetch --no-tags upstream myBranchName

func Init

func Init(options ...types.Option) (string, error)

Init https://git-scm.com/docs/git-init

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/git"

	ginit "github.com/ldez/go-git-cmd-wrapper/init"
)

func main() {
	out, _ := git.Init(ginit.Bare, ginit.Quiet, ginit.Directory("foobar"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git init --bare --quiet foobar

func LogOutput added in v1.0.0

func LogOutput(w io.Writer) types.Option

LogOutput Writer used by the internal logger.

func Merge added in v0.18.0

func Merge(options ...types.Option) (string, error)

Merge https://git-scm.com/docs/git-merge

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/git"
	"github.com/ldez/go-git-cmd-wrapper/merge"
)

func main() {
	out, _ := git.Merge(merge.Squash, merge.Commits("myBranch"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git merge --squash myBranch

func NoOp

func NoOp(_ *types.Cmd)

NoOp do nothing.

func Pull added in v0.11.0

func Pull(options ...types.Option) (string, error)

Pull https://git-scm.com/docs/git-pull

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/git"
	"github.com/ldez/go-git-cmd-wrapper/pull"
)

func main() {
	out, _ := git.Pull(pull.All, pull.Force, pull.Repository("upstream"), pull.Refspec("master"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git pull --all --force upstream master

func Push

func Push(options ...types.Option) (string, error)

Push https://git-scm.com/docs/git-push

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/git"
	"github.com/ldez/go-git-cmd-wrapper/push"
)

func main() {
	out, _ := git.Push(push.All, push.FollowTags, push.ReceivePack("aaa"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git push --all --follow-tags --receive-pack=aaa

func Raw added in v0.9.0

func Raw(cmd string, options ...types.Option) (string, error)

Raw use to execute arbitrary commands.

func Rebase

func Rebase(options ...types.Option) (string, error)

Rebase https://git-scm.com/docs/git-rebase

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/git"
	"github.com/ldez/go-git-cmd-wrapper/rebase"
)

func main() {
	out, _ := git.Rebase(rebase.PreserveMerges, rebase.Branch(fmt.Sprintf("%s/%s", "upstream", "master")), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git rebase --preserve-merges upstream/master

func Remote

func Remote(options ...types.Option) (string, error)

Remote https://git-scm.com/docs/git-remote

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/git"
	"github.com/ldez/go-git-cmd-wrapper/remote"
)

func main() {
	out, _ := git.Remote(remote.Add("upstream", "git@github.com:johndoe/go-git-cmd-wrapper.git"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git remote add upstream git@github.com:johndoe/go-git-cmd-wrapper.git

func Reset added in v0.16.0

func Reset(options ...types.Option) (string, error)

Reset https://git-scm.com/docs/git-reset

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/git"
	"github.com/ldez/go-git-cmd-wrapper/reset"
)

func main() {
	out, _ := git.Reset(reset.Soft, reset.Commit("e41f083"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git reset --soft e41f083

func RevParse added in v0.9.0

func RevParse(options ...types.Option) (string, error)

RevParse https://git-scm.com/docs/git-rev-parse

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/git"
	"github.com/ldez/go-git-cmd-wrapper/revparse"
)

func main() {
	out, _ := git.RevParse(revparse.AbbrevRef(""), revparse.Args("HEAD"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git rev-parse --abbrev-ref HEAD

func Status added in v1.3.0

func Status(options ...types.Option) (string, error)

Status https://git-scm.com/docs/git-status

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/git"
	"github.com/ldez/go-git-cmd-wrapper/status"
)

func main() {
	out, _ := git.Status(status.Short, status.Branch, git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git status --short --branch

func Tag added in v1.1.0

func Tag(options ...types.Option) (string, error)

Tag https://git-scm.com/docs/git-tag

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/git"
	"github.com/ldez/go-git-cmd-wrapper/tag"
)

func main() {
	out, _ := git.Tag(tag.List, git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git tag --list

func Worktree added in v0.21.0

func Worktree(options ...types.Option) (string, error)

Worktree https://git-scm.com/docs/git-worktree

Example
package main

import (
	"fmt"
	"strings"

	"github.com/ldez/go-git-cmd-wrapper/git"
	"github.com/ldez/go-git-cmd-wrapper/worktree"
)

func main() {
	out, _ := git.Worktree(worktree.Add("v1.0", "origin/v1.0"), git.CmdExecutor(cmdExecutorMock))

	fmt.Println(out)
}

func cmdExecutorMock(name string, _ bool, args ...string) (string, error) {
	return fmt.Sprintln(name, strings.Join(args, " ")), nil
}
Output:

git worktree add v1.0 origin/v1.0

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL