C# 克隆存储库上的LibGit2Sharp获取失败

C# 克隆存储库上的LibGit2Sharp获取失败,c#,libgit2,libgit2sharp,C#,Libgit2,Libgit2sharp,我从远程回购中克隆了一个本地存储库 我执行获取,它抛出以下异常: libgit2引发了一个错误。类别=参考(错误)。目标 存储库中不存在引用的OID 异常的堆栈跟踪: at LibGit2Sharp.Core.Ensure.HandleError(Int32 result) in D:\Personal\Projects\LibGitSharp\libgit2sharp\LibGit2Sharp\Core\Ensure.cs:line77 at LibGit2Sharp.Core.Ensure.

我从远程回购中克隆了一个本地存储库

我执行
获取
,它抛出以下异常:

libgit2引发了一个错误。类别=参考(错误)。目标 存储库中不存在引用的OID

异常的堆栈跟踪:

at LibGit2Sharp.Core.Ensure.HandleError(Int32 result) in D:\Personal\Projects\LibGitSharp\libgit2sharp\LibGit2Sharp\Core\Ensure.cs:line77
at LibGit2Sharp.Core.Ensure.ZeroResult(Int32 result) in D:\Personal\Projects\LibGitSharp\libgit2sharp\LibGit2Sharp\Core\Ensure.cs:line 96
at LibGit2Sharp.Core.Proxy.git_remote_update_tips(RemoteSafeHandle remote) in D:\Personal\Projects\LibGitSharp\libgit2sharp\LibGit2Sharp\Core\Proxy.cs:line1435
    public void Fetch()
    {
        var remote = this.LibGit2SharpRepo.Network.Remotes.FirstOrDefault();
        if (remote != null)
        {
            this.LibGit2SharpRepo.Fetch(remoteName:"origin");
            //TODO : Soft reset to the latest commit
        }
    }

    private IRepository _libGit2SharpRepo;
    public IRepository LibGit2SharpRepo
    {
        get { return _libGit2SharpRepo ?? (_libGit2SharpRepo = new Repository(this.RepositoryPath)); }
    }
这是我的代码:

at LibGit2Sharp.Core.Ensure.HandleError(Int32 result) in D:\Personal\Projects\LibGitSharp\libgit2sharp\LibGit2Sharp\Core\Ensure.cs:line77
at LibGit2Sharp.Core.Ensure.ZeroResult(Int32 result) in D:\Personal\Projects\LibGitSharp\libgit2sharp\LibGit2Sharp\Core\Ensure.cs:line 96
at LibGit2Sharp.Core.Proxy.git_remote_update_tips(RemoteSafeHandle remote) in D:\Personal\Projects\LibGitSharp\libgit2sharp\LibGit2Sharp\Core\Proxy.cs:line1435
    public void Fetch()
    {
        var remote = this.LibGit2SharpRepo.Network.Remotes.FirstOrDefault();
        if (remote != null)
        {
            this.LibGit2SharpRepo.Fetch(remoteName:"origin");
            //TODO : Soft reset to the latest commit
        }
    }

    private IRepository _libGit2SharpRepo;
    public IRepository LibGit2SharpRepo
    {
        get { return _libGit2SharpRepo ?? (_libGit2SharpRepo = new Repository(this.RepositoryPath)); }
    }
此外,我的远程回购也在本地磁盘上

[remote "origin"]   
fetch = +refs/heads/\*:refs/remotes/origin/\*   
url = D:\\MyTestRepo\\Data\\RemoteGitRepo.git

不确定我是否遗漏了什么。请给出建议。

Fetch()
接受一些回调以向用户提供有关当前操作的反馈。您能否实现它们,将它们返回的内容输出到控制台,然后用结果更新问题?此错误消息源自。看起来像是
git\u remote\u update\u tips()
试图使远程跟踪头指向不存在的对象。奇怪的是,这些对象应该已经被
Fetch()
进程检索到了。@nulltoken:没有一个回调被调用。。。抛出错误@
int res=NativeMethods.git_remote_update_tips(远程)请发布端到端复制code@nulltoken当前位置我想,我找到了问题所在。如果本地回购是裸存储库,则libgit2sharp
获取
失败。它可以与git.exe配合使用。。