错误描述
git push 时出现以下错误提示:
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require ‘git reset --hard’ to match
remote: error: the work tree to HEAD.
解决方法
看了很多网上的解决方法,找到了一个大佬的分析,从而发现了盲点
大佬原文:
网上解决方案 大致有两种 一种是初始化远端仓库的时候用 git init --bare, 一种是设置denyCurrentBranch = ignore
但是大佬就是大佬,细心的指出push时,不能有人在使用该分支,所以需要push到没人正在使用的分支(就自己搭的git服务器来说),而我查看了服务器端仓库,切换分支后确实能push了,以上问题解决。
分支正在使用也会导致此错误,且大佬原文就git init --bare与git init的区别也进行了详细的解析,推荐一波原文