Git pousser à distance “Pas de tel fichier ou répertoire”

J’essaye de pousser les changements de ma machine locale vers un serveur live. J’ai suivi les étapes sur cette page .

Sur ma machine locale , voici ce que je reçois quand je lance: $ git push web

 Counting objects: 3, done. Delta compression using up to 8 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 291 bytes | 0 bytes/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: /bin/bash: GIT_WORK_TREE=/var/www/html git checkout -f: No such file or directory To ssh://MyDomainRemoved.com/var/git/myproject.git d8a9173..7903ea9 master -> master 

Sur le serveur live , le nouveau commit apparaît dans $ git log . Il a des problèmes avec le crochet post-réception . Voici à quoi ressemble le fichier après réception:

 #!/bin/bash GIT_WORK_TREE=/var/www/html git checkout -f 

Quelques choses que j’ai déjà essayées à partir d’autres fils que j’ai lus:

  • Essayé #!/bin/bash et #!/bin/sh
  • Suppression d’un retour chariot masqué sur la ligne #!/bin/bash . Cela a permis à bash de fonctionner sans erreur ouverte, mais a toujours une erreur de fichier non.
  • Changer / var / www / pour appartenir à l’utilisateur www-data
  • CHMOD / var / www / à 777 (a toujours pas d’erreur de fichier)

Le serveur est Ubuntu 16.04.

Des idées d’autres choses à essayer?

Assurez-vous d’avoir votre script sur plusieurs lignes au lieu d’une:

 #!/bin/bash GIT_WORK_TREE=/var/www/html git checkout -f 

La commande complète serait:

 git --work-tree=/var/www/html --git-dir=/var/git/myproject/.git checkout -f