我很难使用 libgit2sharp 将我的提交推送到远程存储库。使用 git bash 它工作正常。
远程通过 UNC 寻址,例如“//computer_name/remote.git”。所以它是本地网络中机器上的一个文件夹,它有一个可访问的文件夹。
使用 libgit2sharp 将其克隆到本地存储库工作得很好,并且构建远程也成功了
Remote remote = localrepo.Network.Remotes["origin"];
现在,当我尝试使用以下命令推送到遥控器时:
localrepo.Network.Push(remote, "HEAD", "origin");
我在 Proxy.cs 的 git_push_add_refspec() 中遇到异常
An error was raised by libgit2. Category = Invalid (Error).
Not a valid reference 'origin'
所以我尝试了:
repo.Network.Push(remote, "HEAD", @"refs/remotes/origin/master");
并在 Proxy.cs 的 git_push_finish() 中得到了异常
An error was raised by libgit2. Category = Net (Error).
Remote transport doesn't support push.
是否有正确的方法可以做到这一点,或者我的用例是否存在支持问题?提前致谢!
[更新]
现在我的命令看起来像这样
repo.Network.Push(remote, "HEAD", @"refs/remote/origin/master", pushStErrHnd, null);
它PushStatusErrorHandler
只有一行代码,它应该在其中写入PushErrorStatus
控制台。但是控制台保持空白,然后发生上述异常。
[更新 2]
当我经历上述情况时,静态变量 Repository.Version 为 0.9.5。