Как использовать go-git, чтобы найти sha of origin/master?

Я пытаюсь использовать go-git, чтобы найти SHA1 origin/masterпосле того, как я уже сделал эквивалент git fetch --all, Однако go-git, похоже, не поддерживает:

  1. git ls-remote git@github.com:StevenACoffman/toolbox.git
  2. git rev-parse origin/master

Есть ли альтернативный способ определения SHA1 origin/master используя go-git?

1 ответ

Упс! git rev-parse поддерживается! Выполните следующее с ./main.go $PWD origin/master:

///usr/bin/env go run "$0" "$@" ; exit "$?"
package main

import (
    "fmt"
    "os"

    "gopkg.in/src-d/go-git.v4"
    . "gopkg.in/src-d/go-git.v4/_examples"
    "gopkg.in/src-d/go-git.v4/plumbing"
)

// Example how to resolve a revision into its commit counterpart
func main() {
    CheckArgs("<path>", "<revision>")

    path := os.Args[1]
    revision := os.Args[2]

    // We instantiate a new repository targeting the given path (the .git     folder)
    r, err := git.PlainOpen(path)
    CheckIfError(err)

    // Resolve revision into a sha1 commit, only some revisions are resolved
    // look at the doc to get more details
    Info("git rev-parse %s", revision)

    h, err := r.ResolveRevision(plumbing.Revision(revision))

    CheckIfError(err)

    fmt.Println(h.String())
}
Другие вопросы по тегам