De alguma forma, apaguei o diretório inteiro da minha ramificação de código. Eu clonei um novo. Funcionou bem, exceto empurrando.
~/workspace/wtf (mybranch)]$ git push origin mybranch
error: Cannot access URL [my url], return code 22
fatal: git-http-push failed
o git pull funciona, no entanto. Como posso corrigir isso?
http.receivepack
.Respostas:
Cometi o erro de usar https em vez de ssh para uma nova cópia. Desde então, fiz modificações e confirmações, mas não pude pressionar por razões óbvias.
Para recuperar, mudei a seção [remote "origin"] em .git / config de
para
Depois disso, eu poderia empurrar novamente.
fonte
git-http-push failed
, vejo que o op está tentando configurar as coisas por http ou https, -1.HTTP Push mais rápido com apenas git - webDAV não é necessário
O novo suporte "smart-http" desde o git 1.6.6. O novo método permite que o pacote inteiro seja transmitido de uma só vez, e não como arquivos individuais.
Você também pode usar o gitweb para fornecer URLs acessíveis no mesmo local.
Nota: Como o acesso é controlado pelo apache, você pode adicionar quaisquer requisitos de autenticação (htaccess ou ldap, etc) à configuração de cada repositório.
Esta resposta assume que você é o proprietário do servidor remoto e deseja adicionar / corrigir o suporte http.
PRIMEIRO: Verifique os logs do apache, provavelmente é uma permissão negada / incapaz de localizar o erro quando o apache tenta executar os scripts cgi suportados pelo git-http.
Adicionando suporte HTTP ao git
Basta criar um novo arquivo git_support.conf e incluí-lo no apache (adicione a instrução include no httpd.conf)
O resultado é a capacidade de empurrar / puxar:
E você pode procurar essas alterações online.
Fonte: http://repo.or.cz/w/alt-git.git?a=blob_plain;f=gitweb/README
fonte
"SetEnv takes 1-2 arguments, an environment variable name and optional value to pass to CGI."
- por quê?Para habilitar um " git push " sobre http, você deve habilitar o WebDAV no servidor da web. Para fazer isso no Apache Webserver, basta editar o arquivo de configuração:
Em seguida, procure a linha que começa com:
Adicione a seguinte linha logo após:
Verifique se você tem a seguinte linha também no httpd.conf não comentada:
Depois disso você está pronto. Reinicie o Apache Webserver usando:
Verifique também se todos os arquivos do repositório git no servidor podem ser gravados pelo usuário e grupo pache: apache usando:
Caso contrário, não definir as permissões corretas resultará em "Erro PUT: resultado da ondulação = 22, código HTTP = 403" ao executar um "push git".
Agora basta fazer um "git push" na máquina do cliente e tudo deve funcionar.
fonte
Você não pode enviar por push um repositório que você clonou através do HTTP. Você precisa atualizar o URL para um
ssh://
ou umgit://
tipo de URL.fonte
git remote -v
?Edite a seguinte seção do seu arquivo .git / config:
para
Então tente
git push origin master
.Edite os detalhes de autenticação em seus arquivos de configuração para outros URLs do repositório, conforme necessário, e envie para a ramificação necessária.
fonte
git remote set-url origin ...
funciona também.Eu tive o mesmo problema com a operação de envio com configuração de autenticação git-http-backend, ldap.
Finalmente encontrei a solução e a descrevo nesta questão de falha do servidor
Talvez ajude alguém com um problema semelhante.
fonte
Ótimo
Eu tive outros erros, mas funciona!
eu tento explicar:
Could not LOCK /path/to/www/gitproject/refs/heads/master due to a failed precondition (e.g. other locks)
user1520409
ist works.MAS como ocultar a senha do texto na mensagem de envio?
fonte
Isso também pode acontecer se você digitar uma senha errada.
fonte
fatal: Authentication failed
primeiro