git2go是一個用go代碼操作git的庫,需要依賴於第三方庫libgit2
安裝libgit2前,先安裝相應的包:
yum -y install libssh2-devel
在 https://github.com/libgit2/libgit2 下載libgit2的代碼進行安裝:
mkdir build && cd buildcmake ..cmake --build . --target install
然後下載git2go:
go get -d github.com/libgit2/git2go
-d表示只把代碼下載不安裝
進行git2go的目錄,執行:
git checkout nextgit submodule update --init # get libgit2make install
下面是測試的代碼:
package mainimport ( git "github.com/libgit2/git2go" "log")func credentialsCallback(url string, username string, allowedTypes git.CredType) (git.ErrorCode, *git.Cred) { ret, cred := git.NewCredSshKey("git", "/var/www/testgo/git/id_rsa.pub", "/var/www/testgo/git/id_rsa", "") return git.ErrorCode(ret), &cred}func certificateCheckCallback(cert *git.Certificate, valid bool, hostname string) git.ErrorCode { return 0}func main() { cloneOptions := &git.CloneOptions{} cloneOptions.FetchOptions = &git.FetchOptions{ RemoteCallbacks: git.RemoteCallbacks{ CredentialsCallback: credentialsCallback, CertificateCheckCallback: certificateCheckCallback, }, } repo, err := git.Clone("git@github.com:test/test.git", "/tmp/code", cloneOptions) if err != nil { log.Panic(err) } log.Print(repo)}
[文章作者]曾健生
[作者郵箱]h6k65@126.com
[作者QQ]190678908
[部落格] http://blog.csdn.net/newjueqi
http://blog.sina.com.cn/h6k65