From 5ed7c5ca0320fdb300a7e409d82dfb21022fab39 Mon Sep 17 00:00:00 2001 From: Ori Rawlings Date: Sun, 13 Aug 2017 20:41:51 -0500 Subject: Add example for pulling changes --- _examples/pull/main.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 _examples/pull/main.go (limited to '_examples/pull/main.go') diff --git a/_examples/pull/main.go b/_examples/pull/main.go new file mode 100644 index 0000000..ae751d2 --- /dev/null +++ b/_examples/pull/main.go @@ -0,0 +1,36 @@ +package main + +import ( + "fmt" + "os" + + "gopkg.in/src-d/go-git.v4" + . "gopkg.in/src-d/go-git.v4/_examples" +) + +// Pull changes from a remote repository +func main() { + CheckArgs("") + path := os.Args[1] + + // We instance a new repository targeting the given path (the .git folder) + r, err := git.PlainOpen(path) + CheckIfError(err) + + // Get the working directory for the repository + w, err := r.Worktree() + CheckIfError(err) + + // Pull the latest changes from the origin remote and merge into the current branch + Info("git pull origin") + err = w.Pull(&git.PullOptions{RemoteName: "origin"}) + CheckIfError(err) + + // Print the latest commit that was just pulled + ref, err := r.Head() + CheckIfError(err) + commit, err := r.CommitObject(ref.Hash()) + CheckIfError(err) + + fmt.Println(commit) +} -- cgit