De alguna manera eliminé todo el directorio de mi rama de código. Cloné uno nuevo. Funcionó bien excepto empujar.
~/workspace/wtf (mybranch)]$ git push origin mybranch
error: Cannot access URL [my url], return code 22
fatal: git-http-push failed
Sin embargo, git pull funciona. ¿Cómo puedo arreglarlo?
http.receivepack
.Respuestas:
Cometí el error de usar https en lugar de ssh para obtener una copia nueva. Desde entonces hice modificaciones y confirmaciones, pero no pude presionar por razones obvias.
Para recuperar, simplemente cambié la sección ["origen" remoto] en .git / config de
a
Después de eso, podría presionar nuevamente.
fuente
git-http-push failed
, veo que el operador está tratando de configurar las cosas a través de http o https, -1.HTTP Push más rápido con solo git: no se requiere webDAV
El nuevo soporte "smart-http" desde git 1.6.6. El nuevo método permite que todo el paquete se transmita a la vez, y no como archivos individuales.
También puede usar gitweb para proporcionar URL navegables en la misma ubicación.
Nota: Debido a que el acceso está controlado por apache, puede agregar cualquier requisito de autenticación (htaccess o ldap, etc.) a la configuración de cada repositorio.
Esta respuesta asume que usted es el propietario del servidor remoto y desea agregar / corregir el soporte http.
PRIMERO: Verifique los registros de apache, es probable que sea un permiso denegado / no se puede localizar el error cuando apache intenta ejecutar los scripts cgi respaldados por git-http.
Agregar soporte HTTP a git
Simplemente cree un nuevo archivo git_support.conf e inclúyalo en apache (agregue la declaración de inclusión en httpd.conf)
El resultado es la capacidad de empujar / tirar:
Y puede navegar por esos cambios en línea ...
Fuente: http://repo.or.cz/w/alt-git.git?a=blob_plain;f=gitweb/README
fuente
"SetEnv takes 1-2 arguments, an environment variable name and optional value to pass to CGI."
, ¿por qué?Para habilitar un " git push " sobre http, debe habilitar WebDAV en el servidor web. Para hacer eso para el servidor web Apache, simplemente edite el archivo de configuración:
Luego busque la línea que comienza con:
Agregue la siguiente línea justo después:
Asegúrese de tener la siguiente línea también en httpd.conf sin comentarios:
Después de eso estás listo. Reinicie el servidor web Apache usando:
También asegúrese de que todos los archivos del repositorio git en el servidor puedan ser escritos por el usuario y grupo pache: apache usando:
De lo contrario, si no se configuran los permisos correctos, se producirá un "error PUT: resultado de curl = 22, código HTTP = 403" al realizar un "git push".
Ahora simplemente haga un "git push" desde su máquina cliente y todo debería funcionar.
fuente
No puede presionar un repositorio que clonó a través de HTTP. Debe actualizar la URL a una
ssh://
o unagit://
URL de tipo.fuente
git remote -v
?Edite la siguiente sección de su archivo .git / config:
a
Entonces inténtalo
git push origin master
.Edite los detalles de autenticación en sus archivos de configuración para otras URL de repositorio según sea necesario y avance a la rama requerida.
fuente
git remote set-url origin ...
funciona igual de bienTuve el mismo problema con la operación de inserción con git-http-backend, configuración de autenticación ldap.
Finalmente encontré la solución y la describí en esta pregunta por defecto del servidor
Tal vez ayude a alguien con un problema similar.
fuente
Excelente
Tuve otros errores pero funciona!
trato de explicar:
Could not LOCK /path/to/www/gitproject/refs/heads/master due to a failed precondition (e.g. other locks)
user1520409
ist works.¿PERO cómo ocultar la contraseña del texto en el mensaje push?
fuente
Esto también puede suceder si ingresó una contraseña incorrecta.
fuente
fatal: Authentication failed
primero