aboutsummaryrefslogtreecommitdiffstats
path: root/_examples/commit
diff options
context:
space:
mode:
Diffstat (limited to '_examples/commit')
-rw-r--r--_examples/commit/main.go67
1 files changed, 67 insertions, 0 deletions
diff --git a/_examples/commit/main.go b/_examples/commit/main.go
new file mode 100644
index 0000000..aeb1d4f
--- /dev/null
+++ b/_examples/commit/main.go
@@ -0,0 +1,67 @@
+package main
+
+import (
+ "fmt"
+ "io/ioutil"
+ "os"
+ "path/filepath"
+ "time"
+
+ "gopkg.in/src-d/go-git.v4"
+ . "gopkg.in/src-d/go-git.v4/_examples"
+ "gopkg.in/src-d/go-git.v4/plumbing/object"
+)
+
+// Basic example of how to commit changes to the current branch to an existant
+// repository.
+func main() {
+ CheckArgs("<directory>")
+ directory := os.Args[1]
+
+ // Opens an already existant repository.
+ r, err := git.PlainOpen(directory)
+ CheckIfError(err)
+
+ w, err := r.Worktree()
+ CheckIfError(err)
+
+ // ... we need a file to commit so let's create a new file inside of the
+ // worktree of the project using the go standard library.
+ Info("echo \"hellow world!\" > example-git-file")
+ filename := filepath.Join(directory, "example-git-file")
+ err = ioutil.WriteFile(filename, []byte("hello world!"), 0644)
+ CheckIfError(err)
+
+ // Adds the new file to the staging area.
+ Info("git add example-git-file")
+ _, err = w.Add("example-git-file")
+ CheckIfError(err)
+
+ // We can verify the current status of the worktree using the method Status.
+ Info("git status --porcelain")
+ status, err := w.Status()
+ CheckIfError(err)
+
+ fmt.Println(status)
+
+ // Commits the current staging are to the repository, with the new file
+ // just created. We should provide the object.Signature of Author of the
+ // commit.
+ Info("git commit -m \"example go-git commit\"")
+ commit, err := w.Commit("example go-git commit", &git.CommitOptions{
+ Author: &object.Signature{
+ Name: "John Doe",
+ Email: "john@doe.org",
+ When: time.Now(),
+ },
+ })
+
+ CheckIfError(err)
+
+ // Prints the current HEAD to verify that all worked well.
+ Info("git show -s")
+ obj, err := r.CommitObject(commit)
+ CheckIfError(err)
+
+ fmt.Println(obj)
+}