对于这个项目,我使用libgit2。我可以创建成功的存储库克隆。我可以从命令行看到“git status”的更改,但是当我尝试从远程存储库获取更改时,我的程序不会发出任何错误,但不起作用。
bool Repository::fetchRemoteRepository(QString repos)
{
git_repository *repo = nullptr;
int error = git_repository_open(&repo, repos.toStdString().c_str());
if (error < 0)
{
const git_error *err = giterr_last();
mError = QString(err->message);
git_repository_free(repo);
return false;
}
git_remote *remote;
error = git_remote_lookup(&remote, repo, "origin");
if (error < 0)
{
const git_error *err = giterr_last();
mError = QString(err->message);
git_remote_free(remote);
git_repository_free(repo);
return false;
}
error = git_remote_fetch(remote, NULL, NULL, NULL);
if (error < 0)
{
const git_error *err = giterr_last();
mError = QString(err->message);
git_remote_free(remote);
git_repository_free(repo);
return false;
}
git_remote_free(remote);
git_repository_free(repo);
return true;
}
我使用的是libgit2 0.26.0