2

尝试将提交推送到裸远程存储库时,我收到以下错误:

Push: Not all refs have been pushed. 'master' rejected (non-fast-forward) 
refusing to update checked out branch: refs/heads/master. By default, updating 
the current branch in a non-bare repository is denied, because it will make 
the index and work tree inconsistent with what you pushed, and will require 
'git reset --hard' to match the work tree to HEAD.

You can set 'receive.denyCurrentBranch' configuration variable to 'ignore' or 
'warn' in the remote repository to allow pushing into its current branch; 
however, this is not recommended unless you arranged to update its work tree 
to match what you pushed in some other way.        

To squelch this message and still keep the default behaviour, set
'receive.denyCurrentBranch' configuration variable to 'refuse'.

error: failed to push some refs to 'server'

我已经研究了这个错误,它似乎表明我正在推送的存储库不是裸露的,事实并非如此。这可能是git的问题吗?我正在使用 SmartGit 客户端。

我也尝试从远程仓库中提取,但没有任何效果。

4

1 回答 1

1

好吧,这很奇怪,我之前确实检查了 git 配置文件,它已经设置为 true。我完全确定!

包括我自己在内的其他人之前也能够向这个 repo 提交提交。你发出的命令返回 false,所以我重新检查了 git 配置文件,bare 设置为 false。我将其设置为 true 并推送,问题解决了!

git config --bool core.bare
#returned false

配置文件一定是在我不知情的情况下被编辑过的。

于 2013-09-25T15:35:23.207 回答