目前,我正在研究'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
这次也显示出与上述相同的错误。你能帮我解决这个问题吗?
答案 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)。使用以下步骤:
git commit --amend(现在是编辑提交消息的时间)
git commit -m&#34; vs [your_vsts_id] -your_commit_message&gt;&#34; 然后按
我(键盘按钮)
Esc(键盘按钮)
:wq(保存)
之后你就可以推(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