我不知道如何为裸存储库设置HEAD
引用。
向BareRepositoryException
发送消息
Additional information: An error was raised by libgit2. Category = Repository (BareRepo).
当我尝试repo.Checkout(repo.Branches["balabala"])
答案 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)
,它正在发挥作用。