0

我不知道如何HEAD为裸存储库设置参考。

抛出BareRepositoryExceptionwith 消息

Additional information: An error was raised by libgit2. Category = Repository (BareRepo).

当我尝试repo.Checkout(repo.Branches["balabala"])

4

2 回答 2

1

签出确实会更新更新,但也会使用被签出HEAD的内容更新工作目录的当前内容。Commit

这确实不适用于裸存储库,因为没有工作目录。

在裸存储库中移动的正确方法HEAD是更新此引用的目标:

  • repo.Refs.UpdateTarget(repo.Refs.Head, repo.Refs["myBranch"])将更新HEAD以使其指向分支mybranch,同时保持连接

  • repo.Refs.UpdateTarget(repo.Refs.Head, repo.Refs["myBranch"].Tip.Id)将更新HEAD以使其直接到分支尖端的提交,从而分离HEAD

于 2013-11-13T16:56:14.100 回答
0

很好,我发现repo.Refs.UpdateTarget("HEAD", repo.Branches["master"].Tip.Sha),它的工作。

于 2013-11-13T16:08:20.163 回答