J'ai en quelque sorte supprimé le répertoire entier de ma branche de code. J'en ai cloné un nouveau. Cela a bien fonctionné, sauf en poussant.
~/workspace/wtf (mybranch)]$ git push origin mybranch
error: Cannot access URL [my url], return code 22
fatal: git-http-push failed
git pull fonctionne, cependant. Comment puis-je le réparer?
http.receivepack
.Réponses:
J'ai fait l'erreur d'utiliser https au lieu de ssh pour une nouvelle copie. Depuis lors, j'ai apporté des modifications et des commits, mais je n'ai pas pu pousser pour des raisons évidentes.
Pour récupérer, j'ai simplement changé la section [remote "origin"] dans .git / config de
à
Après cela, je pouvais encore pousser.
la source
git-http-push failed
, je vois que l'op essaie de configurer les choses sur http ou https, -1.Push HTTP plus rapide avec seulement git - webDAV n'est pas requis
Le nouveau support "smart-http" depuis git 1.6.6. La nouvelle méthode permet à l'ensemble du pack d'être transmis en une seule fois, et non en tant que fichiers individuels.
Vous pouvez également utiliser gitweb pour fournir des URL navigables au même endroit.
Remarque: L'accès étant contrôlé par Apache, vous pouvez ajouter toutes les exigences Auth (htaccess ou ldap, etc.) à la configuration de chaque référentiel.
Cette réponse suppose que vous possédez le serveur distant et que vous souhaitez ajouter / corriger la prise en charge http.
D'ABORD: Vérifiez les journaux d'Apache, il s'agit probablement d'une autorisation refusée / incapable de localiser l'erreur lorsque Apache essaie d'exécuter les scripts cgi soutenus par git-http.
Ajout de la prise en charge HTTP à git
Créez simplement un nouveau fichier git_support.conf et incluez-le dans apache (ajoutez l'instruction include dans httpd.conf)
Le résultat est la capacité de pousser / tirer:
Et vous pouvez parcourir ces modifications en ligne ..
Source: http://repo.or.cz/w/alt-git.git?a=blob_plain;f=gitweb/README
la source
"SetEnv takes 1-2 arguments, an environment variable name and optional value to pass to CGI."
- pourquoi?Pour activer un " git push " sur http, vous devez activer WebDAV sur le serveur Web. Pour cela pour Apache Webserver, modifiez simplement le fichier de configuration:
Recherchez ensuite la ligne commençant par:
Ajoutez la ligne suivante juste après:
Assurez-vous que la ligne suivante est également non commentée dans httpd.conf:
Après cela, vous êtes prêt. Redémarrez le serveur Web Apache à l'aide de:
Assurez-vous également que tous les fichiers du référentiel git sur le serveur sont accessibles en écriture par l'utilisateur et le groupe pache: apache en utilisant:
Sinon, le fait de ne pas définir les autorisations appropriées entraînera une "erreur PUT: résultat curl = 22, code HTTP = 403" lors de l'exécution d'une "poussée git".
Maintenant, faites simplement un "git push" depuis votre machine cliente et tout devrait fonctionner.
la source
Vous ne pouvez pas pousser sur un référentiel que vous avez cloné via HTTP. Vous devez mettre à jour l'URL en une
ssh://
ou unegit://
URL de type.la source
git remote -v
?Modifiez la section suivante de votre fichier .git / config:
à
Alors essayez
git push origin master
.Modifiez les détails d'authentification dans vos fichiers de configuration pour d'autres URL de référentiel selon vos besoins et passez à la branche requise.
la source
git remote set-url origin ...
fonctionne aussi bien.J'ai eu le même problème avec l'opération push avec git-http-backend, configuration d'authentification LDAP.
Enfin, j'ai trouvé la solution et la décrire dans cette question de défaut de serveur
Peut-être que cela aidera quelqu'un avec un problème similaire.
la source
Génial
j'ai eu d'autres erreurs mais ça marche!
j'essaie d'expliquer:
Could not LOCK /path/to/www/gitproject/refs/heads/master due to a failed precondition (e.g. other locks)
user1520409
travaux.MAIS comment cacher le mot de passe du texte au message push?
la source
Cela peut également se produire si vous avez entré un mauvais mot de passe.
la source
fatal: Authentication failed
premier