#include #include void print_commits(const git_reference *branch, git_repository *repo) { const git_oid *id; git_revwalk *walker; git_oid current; git_revwalk_new(&walker,repo); id=git_reference_target(branch); git_revwalk_push(walker,id); while(!git_revwalk_next(¤t,walker)) { printf("%s\n",git_oid_tostr_s(¤t)); } } int main() { const char *name; git_branch_iterator *it; git_repository *repo; git_reference *ref; git_branch_t branch_type=GIT_BRANCH_LOCAL; git_libgit2_init(); git_repository_open(&repo,"."); git_branch_iterator_new(&it,repo,branch_type); while(git_branch_next(&ref,&branch_type,it)==0) { git_branch_name(&name,ref); if(name) { printf("------- %s -------\n",name); print_commits(ref,repo); printf("------------------\n"); }else { printf("NULL\n"); } } git_repository_free(repo); git_branch_iterator_free(it); git_libgit2_shutdown(); return 0; }