如何使用libgit2遍歷分支的所有提交?使用libgit2列出分支中的所有提交
我已經有了以下代碼,但它不能編譯。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <git2.h>
int main(int argc, char *argv[]){
git_repository *repo;
git_repository_open(&repo, ".");
git_odb *obj_db;
obj_db = git_repository_database(repo);
git_object commit;
git_revparse_single(&commit, repo, "HEAD");
git_repository_free(repo);
return 0;
}
GCC報道:
log.c: In function ‘main’:
log.c:11:9: warning: assignment makes pointer from integer without a cast [enabled by default]
log.c:13:13: error: storage size of ‘commit’ isn’t known
我與-lgit2
標誌編譯。從根提交開始,是否可以快速完成所有提交?
更新 新的代碼如下所示:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <git2.h>
int main(int argc, char *argv[]){
git_repository *repo;
git_repository_open(&repo, ".");
git_odb *obj_db;
obj_db = git_repository_database(repo);
git_object *commit;
git_revparse_single(&commit, repo, "HEAD");
git_repository_free(repo);
return 0;
}
我收到以下錯誤信息:
log.c:11: undefined reference to `git_repository_database'
log.c:14: undefined reference to `git_revparse_single'
確保您正在使用最新的庫並查看該版本的文檔。 'git_repository_database'不存在。大概你想'git_repository_odb',儘管你不需要它的日誌。 'git_revparse_single'在0.18版本中引入,這表明您的系統中已安裝了一個古老的庫。 –