Merge pull request #542 from mcarmonaa/fix/config-marhal

serialized remotes in alphabetical order
diff --git a/config/config.go b/config/config.go
index cb10738..475045e 100644
--- a/config/config.go
+++ b/config/config.go
@@ -5,6 +5,7 @@
 	"bytes"
 	"errors"
 	"fmt"
+	"sort"
 
 	format "gopkg.in/src-d/go-git.v4/plumbing/format/config"
 )
@@ -168,9 +169,16 @@
 		}
 	}
 
-	for name, remote := range c.Remotes {
+	remoteNames := make([]string, 0, len(c.Remotes))
+	for name := range c.Remotes {
+		remoteNames = append(remoteNames, name)
+	}
+
+	sort.Strings(remoteNames)
+
+	for _, name := range remoteNames {
 		if !added[name] {
-			newSubsections = append(newSubsections, remote.marshal())
+			newSubsections = append(newSubsections, c.Remotes[name].marshal())
 		}
 	}
 
diff --git a/config/config_test.go b/config/config_test.go
index 97f4bbf..c27ee26 100644
--- a/config/config_test.go
+++ b/config/config_test.go
@@ -51,13 +51,13 @@
 	output := []byte(`[core]
 	bare = true
 	worktree = bar
-[remote "origin"]
-	url = git@github.com:mcuadros/go-git.git
 [remote "alt"]
 	url = git@github.com:mcuadros/go-git.git
 	url = git@github.com:src-d/go-git.git
 	fetch = +refs/heads/*:refs/remotes/origin/*
 	fetch = +refs/pull/*:refs/remotes/origin/pull/*
+[remote "origin"]
+	url = git@github.com:mcuadros/go-git.git
 [submodule "qux"]
 	url = https://github.com/foo/qux.git
 `)