Executei o servidor gitlabhq rails na máquina virtual, seguindo as 1-6 etapas deste tutorial https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md e inicia o comando de execução do servidor rails sudo -u git -H bundle exec rails s -e production
. Depois disso, criei o usuário, usando as ferramentas administrativas e criei um novo projeto com esse usuário. Então, estou tentando enviar o projeto existente para esse repositório, como sempre. Mas na última etapa, git push origin master
falha com o erro
mestre [remoto rejeitado] -> mestre (gancho de pré-recebimento recusado)
Informação adicional:
1) Não ativei o usuário (proprietário do projeto) por meio do link de ativação de email, porque não configurei o serviço de postagem no servidor e não encontrei instruções sobre como fazer isso neste manual.
2) O servidor Gitlab gera dicas sobre como enviar o projeto para o repositório e não há repositories/
caminho. Quero dizer, gera em git@mygitlabhost:user/repo.git
vez do git@mygitlabhost:repositories/user/repo.git
que está correto.
3) Quando eu tentei depurá-lo, abri pre-receive
script dentro repo no servidor e tentou variáveis de saída (há 3 deles): refs = ARGF.read
, key_id = ENV['GL_ID']
e repo_path = Dir.pwd
e encontrado, que key_id está sempre vazio. Talvez o problema esteja aqui ... Se assim for, por favor, me dê sugestões sobre como corrigir isso. obrigado
Respostas:
Por padrão, o GitLab marca o
master
ramo comoprotected
(Veja a parteProtecting your code
em https://about.gitlab.com/2014/11/26/keeping-your-code-protected/ why). Nesse caso, no seu caso, isso pode ajudar:via https://gitlab.com/gitlab-com/support-forum/issues/40
Para a versão 8.11 e superior instruções da : https://docs.gitlab.com/ee/user/project/protected_branches.html#restricting-push-and-merge-access-to-fficient-users
fonte
GitLab 8.11
as opções mudou um pouco, verificar os detalhes aquiR. Primeiro, verifique se você está usando os detalhes corretos de logon para se conectar ao Bitbucket Server (ou seja, um nome de usuário / senha / chave SSH que pertence a você)
B. Em seguida, verifique se o nome / endereço de email está definido corretamente na configuração local do Git: Defina a configuração local do Git para a conta que você está tentando enviar (a verificação afirma que você é a pessoa que confirmou os arquivos) * Observe que isso faz distinção entre maiúsculas e minúsculas, tanto para o nome quanto para o endereço de e-mail * Também é sensível ao espaço - algumas contas da empresa têm espaços / caracteres extras em seu nome, por exemplo. "
Contractor/ space space(LDN)
" Você deve incluir o mesmo número de espaços em sua configuração que no Bitbucket Server. Verifique isso no bloco de notas se preso.C. Se você estava usando a conta errada, basta mudar as credenciais da sua conta (nome de usuário / senha / chave SSH) e tente pressionar novamente.
D. Caso contrário, se sua configuração local estiver incorreta, será necessário alterá-la
open -a TextEdit.app ~/.gitconfig
NOTA: Você precisará corrigir as confirmações antigas que estava tentando enviar.
Altere seu último commit:
Tente reenviar seus commits:
fonte
No meu caso, minha equipe liderou a criação de um repo (repo estava vazio) e me designou como desenvolvedor, então, quando pressionei o código diretamente para dominar o erro que estava enfrentando,
! [remote rejected] master -> master (pre-receive hook declined)
como foi corrigido que ele me designou como mantenedor, para que eu foi capaz de enviar o código diretamente ao mestre.fonte
Parece que o problema está em alguns serviços, como o sidekiq. A execução
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
gera todos os problemas com a configuração.fonte
segui as instruções dos logs heroku img https://devcenter.heroku.com/articles/buildpacks#detection-failure (use cmd: heroku logs -> mostre seu erro) e faça o cmd: "heroku buildpacks: clear". finalmente, funcionou para mim!
fonte
Talvez você não tenha acesso de desenvolvedor ao projeto ou ramo principal. Você precisa de acesso de desenvolvedor para promover novos trabalhos.
Novo trabalho significa novos ramos e confirmações.
fonte
Pode não ser o caso, mas essa foi a solução para meu " gancho de pré-recebimento recusado" erro ":
Existem alguns repositórios que permitem modificações apenas por solicitação de recebimento . Isso significa que você precisa
fonte
Você precisa adicionar sua chave ssh à sua conta git; se isso gerar erro, exclua a chave ssh anterior e crie uma nova chave ssh e adicione.
fonte
Eu resolvi esse problema alterando
remote 'origin' url
dehttp
paragit
protocolo em.git/config
fonte
Vá para Configurações do projeto -> Ganchos -> (Abaixo) Ganchos de pré-recebimento
Desabilitar cp exige referência de problema em confirmações
fonte
Eu me deparei com o mesmo erro usando o BitBucket. Como eu tinha um repositório Git local que queria fazer backup online, criei um novo repositório a partir da minha conta BitBucket (usando a interface da web).
Após a execução
git remote add origin [email protected]:StatMarianne/<a private repo>.git
, corrigit push origin master
sem sucesso (normalmente não uso a opção -u comgit push
porque não me importo de digitar os nomes completos dos repositórios e ramificações ao pressionar e puxar).O erro dizia:
Mas minha filial local foi enviada com êxito quando eu corri
git push -u origin master
(seguindo estritamente as instruções do BitBucket).Acho surpreendente, já que -u (
--set-upstream
) deve apenas "adicionar referência a montante (rastreamento) ..." De qualquer forma.fonte
Eu enfrentei o mesmo problema, porque estou enviando meu código diretamente no ramo mestre e não tenho direitos para isso. Então, introduzi meu código em uma nova ramificação e, depois disso, criei uma solicitação pull para mesclar com o mestre.
fonte