将HEAD设置为裸存储库

时间:2013-11-13 15:45:57

标签: libgit2sharp

我不知道如何为裸存储库设置HEAD引用。

BareRepositoryException发送消息

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

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

2 个答案:

答案 0 :(得分:1)

签出确实会更新HEAD的更新,但也会更新workdir的当前内容,并检查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

答案 1 :(得分:0)

很好,我找到了repo.Refs.UpdateTarget("HEAD", repo.Branches["master"].Tip.Sha),它正在发挥作用。