<p>在使用Git Push代码到数据仓库时,提示如下错误:</p><pre class="brush:bash;toolbar:false">[remoterejected]master->master(branchiscurrentlycheckedout)
remote:error:refusingtoupdatecheckedoutbranch:refs/heads/master
remote:error:Bydefault,updatingthecurrentbranchinanon-barerepository
remote:error:isdenied,becauseitwillmaketheindexandworktreeinconsistent
remote:error:withwhatyoupushed,andwillrequire'gitreset--hard'tomatch
remote:error:theworktreetoHEAD.
remote:error:
remote:error:Youcanset'receive.denyCurrentBranch'configurationvariableto
remote:error:'ignore'or'warn'intheremoterepositorytoallowpushinginto
remote:error:itscurrentbranch;however,thisisnotrecommendedunlessyou
remote:error:arrangedtoupdateitsworktreetomatchwhatyoupushedinsome
remote:error:otherway.
remote:error:
remote:error:Tosquelchthismessageandstillkeepthedefaultbehaviour,set
remote:error:'receive.denyCurrentBranch'configurationvariableto'refuse'.
Togit@192.168.1.X:/var/git.server/.../web
![remoterejected]master->master(branchiscurrentlycheckedout)
error:failedtopushsomerefsto'git@192.168.1.X:/var/git.server/.../web'</pre><p>这是由于git默认拒绝了push操作,需要进行设置,修改.git/config添加如下代码:</p><pre class="brush:bash;toolbar:false">[receive]
denyCurrentBranch=ignore</pre><p></p><p>在初始化远程仓库时最好使用 git --bare init 而不要使用:git init</p><p> 如果使用了git init初始化,则远程仓库的目录下,也包含work tree,当本地仓库向远程仓库push时, 如果远程仓库正在push的分支上(如果当时不在push的分支,就没有问题), 那么push后的结果不会反应在work tree上, 也即在远程仓库的目录下对应的文件还是之前的内容,必须得使用git reset --hard才能看到push后的内容.</p>