git push origin master 结果:REJECTED_OTHER_REASON

git push origin master 结果:REJECTED_OTHER_REASON

我在服务器上创建了一个个人存储库。我可以克隆它。推送时出现错误

拒绝更新....

...

'receive.denyCurrentBranch' 配置变量为'拒绝'。

...

! [rmeote 被拒绝] master -> master (分支当前已签出)

错误:无法将一些引用推送到“ssh:// .....”

有人可以帮忙解决这个问题吗?

多谢。

答案1

问题在于您已master在服务器上签出,因此无法推master送到服务器。有三种不同的方法可以解决这个问题:

如果您要远程工作,正确的方法是从存储库开始--bare。裸存储库没有“工作树”/工作目录,这意味着存储库永远不会在服务器本身上签出任何分支。请参阅Git 常见问题解答

绝不推送到附加有工作树的存储库中,直到你知道自己在做什么

让它从您现在的位置开始工作的简单方法是简单地创建一个虚假的分支并在服务器上检查它,因此服务器上的工作目录设置为除master您永远不会尝试从客户端推送的分支之外的某个分支。

困难方法要求你创建一个触发器来重置服务器上的工作目录(你将丢失服务器上所有未提交的更改)(示例触发 shell 脚本) 并配置 git 以禁用您遇到的错误git config receive.denyCurrentBranch ignore当你使用 git 远程编辑网页时会用到它。再次,请参阅上面的常见问题解答,如果您仅禁用错误而不设置 post-receive 挂钩,则您的工作树将不会为您更新,git reset --hard如果您想查看已推送到那里的文件,则必须在服务器上进行更新。

相关内容