RevWalk是您正在寻找的。repo, err := git.OpenRepository("path/to/repository")log.Println(err)w, err := repo.Walk() // returns a RevWalk instance for this repolog.Println(err)您可以配置返回的RewWalk实例。err = w.PushHead() // instruct to start from the head commitlog.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})