我有興趣從go運行git log命令。我看到C#版本支持這個(https://github.com/libgit2/libgit2sharp/wiki/git-log)。 GO version是否也支持類似的git log命令?我做了一些快速搜索「查詢」和「過濾」關鍵字,我沒有找到任何東西。如何在GO中使用libgit2運行git log命令?
3
A
回答
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。
相關問題
- 1. 「git log -1 fullpath/myfile」with libgit2
- 2. 如何運行GIT命令
- 3. Git擴展腳本 - 如何使用git log命令
- 4. 在Windows命令行中使用.bashrc運行git命令
- 5. 使用Git Log命令的grep功能
- 6. 如何在libgit2中實現git log <branch> ..FETCH_HEAD?
- 7. 使用VBScript,我如何在GitHub的'Git Shell'中運行命令?
- 8. 運行git命令
- 9. 如何使用libgit2從git中獲取?
- 10. 如何在終端中停止/取消'git log'命令?
- 11. 如何在git log命令中排除已刪除的文件?
- 12. git log命令的邏輯說明git log master-1.0.83..HEAD
- 13. 如何從java運行git命令?
- 14. git-bash.exe:如何運行單個命令?
- 15. 如何從命令行從git啓動和運行命令
- 16. 如何在Groovy腳本(窗口)中使用GIT命令(diff,log等)
- 17. 如何在c#中使用命令提示符運行命令#
- 18. 如何在git中使用gitignore命令
- 19. 如何在MSBuild中使用git命令?
- 20. 在PowerShell中運行Git命令
- 21. 如何從命令行使用GIT PULL?
- 22. 格式化的git log命令
- 23. 無法在$ GERRIT_SITE/git文件夾中運行任何git命令
- 24. git log命令在chroot中沒有輸出任何內容
- 25. 如何直接從終端/命令行運行Go(lang)代碼?
- 26. 如何僅使用管道命令訪問git log --stat中顯示的信息?
- 27. 使用libgit2做Git Pull
- 28. 如何在PowerShell中爲每個git子模塊運行命令?
- 29. 運行go go使用golang exec.Command
- 30. 在libgit2中執行git描述