2016-05-18 68 views

回答

2

RevWalk是你在找什麼。

repo, err := git.OpenRepository("path/to/repository") 
log.Println(err) 

w, err := repo.Walk() // returns a RevWalk instance for this repo 
log.Println(err) 

您可以配置返回的RewWalk實例。

err = w.PushHead() // instruct to start from the head commit 
log.Println(err) 

如果你想登錄不同的分支,你可以使用PushRef來代替。還有其他配置選項可以配置日誌的起點和終點。查看這些文檔。

使用Iterate方法來檢查提交列表。您需要傳遞一個函數,該函數將在列表中的每個提交中調用。

w.Iterate(func(c *git.Commit) bool { 
    fmt.Println(c.Message()) 
    return true // return false when you want to stop iterating 
}) 
1

您至少可以使用Commit.Parent method來模擬git日誌,該日誌允許訪問提交的父級(從commit.go)。

除此之外,我沒有看到直接調用git log。

相關問題