aboutsummaryrefslogtreecommitdiffstats
path: root/examples/remotes/main.go
diff options
context:
space:
mode:
authorMáximo Cuadros <mcuadros@gmail.com>2016-08-22 00:17:21 +0200
committerMáximo Cuadros <mcuadros@gmail.com>2016-08-22 00:17:21 +0200
commita045606fc9c5cbf30b409384cbdad4804f01c61d (patch)
tree2b72458903060790280adaaf0f53c5aa4ba73a82 /examples/remotes/main.go
parentb32e92d013f6fe0d97f094c4b1991100d568f980 (diff)
downloadgo-git-a045606fc9c5cbf30b409384cbdad4804f01c61d.tar.gz
examples: improved basic and remote examples
Diffstat (limited to 'examples/remotes/main.go')
-rw-r--r--examples/remotes/main.go63
1 files changed, 63 insertions, 0 deletions
diff --git a/examples/remotes/main.go b/examples/remotes/main.go
new file mode 100644
index 0000000..488986a
--- /dev/null
+++ b/examples/remotes/main.go
@@ -0,0 +1,63 @@
+package main
+
+import (
+ "fmt"
+
+ "github.com/fatih/color"
+
+ "gopkg.in/src-d/go-git.v4"
+ "gopkg.in/src-d/go-git.v4/config"
+ "gopkg.in/src-d/go-git.v4/core"
+)
+
+func main() {
+ // Create a new repository
+ color.Blue("git init")
+ r := git.NewMemoryRepository()
+
+ // Add a new remote, with the default fetch refspec
+ // > git remote add example https://github.com/git-fixtures/basic.git
+ color.Blue("git remote add example https://github.com/git-fixtures/basic.git")
+
+ r.CreateRemote(&config.RemoteConfig{
+ Name: "example",
+ URL: "https://github.com/git-fixtures/basic.git",
+ })
+
+ // List remotes from a repository
+ // > git remotes -v
+ color.Blue("git remotes -v")
+
+ list, _ := r.Remotes()
+ for _, r := range list {
+ fmt.Println(r)
+ }
+
+ // Pull using the create repository
+ // > git pull example
+ color.Blue("git pull example")
+
+ r.Pull(&git.RepositoryPullOptions{
+ RemoteName: "example",
+ })
+
+ // List the branches
+ // > git show-ref
+ color.Blue("git show-ref")
+
+ r.Refs().ForEach(func(ref *core.Reference) error {
+ // The HEAD is ommitted in a `git show-ref` so we ignore the symbolic
+ // references, the HEAD
+ if ref.Type() == core.SymbolicReference {
+ return nil
+ }
+
+ fmt.Println(ref)
+ return nil
+ })
+
+ // Delete the example remote
+ // > git remote rm example
+ color.Blue("git remote rm example")
+ r.DeleteRemote("example")
+}