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配合使用。。