Попробуйте пакет go-git .Это позволяет вам выполнять операции git clone / commit / push.Он также может клонировать дерево в памяти без необходимости доступа к диску.
Из примера commit приведен пример добавления / фиксации:
_, err = w.Add("example-git-file")
CheckIfError(err)
commit, err := w.Commit("example go-git commit", &git.CommitOptions{
Author: &object.Signature{
Name: "John Doe",
Email: "john@doe.org",
When: time.Now(),
},
})