错误:hook拒绝在推送分支时更新refs / heads / external_pub

时间:2013-05-22 11:39:10

标签: git

目前,我正在研究'external_pub'分支。我在一个文件中做了一些更改,添加了它,提交了&然后试图推动:

git push origin external_pub

但这导致了一个错误:

remote: error: hook declined to update refs/heads/external_pub
To ssh://XXX/testing.git
! [remote rejected] external_pub -> external_pub (hook declined)
error: failed to push some refs to 'ssh://XXX/testing.git'

然后我尝试推送分支而不做任何改变,看看会发生什么(仅用于隔离问题)。我做了以下事情:

git reset --hard <commit_id> (to reset to last working sha commit)
git status

以上命令显示:

# On branch external_pub
# Your branch is ahead of 'development' by 5 commits.
#
nothing to commit (working directory clean)

然后

git pull origin external_pub

它显示:您的分支已经是最新的

然后

git push origin external_pub

这次也显示出与上述相同的错误。你能帮我解决这个问题吗?

4 个答案:

答案 0 :(得分:7)

服务器上有git hook拒绝推送。引用:

  

这些脚本在推送到服务器之前和之后运行。预钩   可以随时退出非零以拒绝推送以及打印   错误消息回到客户端;你可以设置推送政策   你想要的复杂。

要找出原因,你需要知道钩子的作用。挂钩存储在git文件夹内的hooks文件夹中(位于远端) - 找到预接收挂钩或更新挂钩并检查它。

答案 1 :(得分:0)

在OSX中,它通常是由brew ruby​​安装和Apple ruby​​ 2.0(默认)之间缺少GEM引起的。

在要求点找不到包含'require json / ext / parser'或类似的附加组件。

答案 2 :(得分:0)

我解决了这个问题。通常我在提交代码时在消息中使用VSTSID(Visual Studio Team Services)。使用以下步骤:

  1. git commit --amend(现在是编辑提交消息的时间)

  2. git commit -m&#34; vs [your_vsts_id] -your_commit_message&gt;&#34; 然后按

  3. 我(键盘按钮)

  4. Esc(键盘按钮)

  5. :wq(保存)

  6. 之后你就可以推(git push)。

    如果您仍然遇到问题,请在git bash中输入git reset --soft HEAD^。现在,您可以看到所有绿色文件。这意味着,文件再次准备好提交。根据您的要求,您也可以使用reset(git reset)命令。

答案 3 :(得分:0)

如果您使用的是 Redmine Git Hosting ,请检查您的Projet权限 Manager 角色是否已分配给尝试重写其git跟踪的用户参考。

请注意,我假设您知道 git push -force 对可能共享同一远程分支的其他用户的影响。有关更多详细信息,请check this article