Git est en train de changer mes permissions du fichier quand je pousse vers le serveur
J'utilise git pour gérer un site web sur un serveur.
J'ai un dépôt local indiqué ci-dessous
local@workstation:myapp$ ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
total 16
755 drwxr-xr-x@ 18 thomas staff 612 Jun 13 15:35 application
755 drwxr-xr-x@ 11 thomas staff 374 Jun 12 16:25 assets
644 -rw-r--r--@ 1 thomas staff 6399 Jun 22 11:45 index.php
755 drwxr-xr-x@ 10 thomas staff 340 May 14 15:22 system
J'ai un dépôt nu sur le serveur qui utilise post-receive
au point le repo en face de apache. Apache public
contenu des dossiers sont au-dessous de pas le dépôt nu.
root@server:/srv/public/myapp# ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
total 20
700 drwx------ 15 root root 4096 Jun 27 11:31 application
700 drwx------ 10 root root 4096 Jun 27 11:31 assets
600 -rw------- 1 root root 6399 Jun 27 11:31 index.php
700 drwx------ 8 root root 4096 Jun 27 11:31 system
Ce qui provoque le chaos dans mon code sur le serveur.
Comment puis-je résoudre ce problème? Je suis l'aide de gitolite si cela fait une différence.
git fichier de configuration de serveur
[core]
repositoryformatversion = 0
filemode = true
bare = true
- Avez-vous vérifié le umask de l'utilisateur utilisé pour la création de /srv/public/myapp repo? Ce qui est dans le git config? Tout ce qui est lié avec le fichier en mode a changé là-bas?
- Je me suis amusé avec le mode fichier et je l'ai eu à travailler à un moment, maintenant, c'est
true
. Pas sûr de ce que "le démasquer" est. J'ai un utilisateurs de git que j'ai le programme d'installation avec gitolite. J'ai mis à jour le post. - Voir cette question.
InformationsquelleAutor ThomasReggi | 2012-06-27
Vous devez vous connecter pour publier un commentaire.
Ce fil post offre une très bonne explication:
755
et fichiers644
.umask 022
dans votre .script de profil à appliquer 755 et 644 lorsque de nouveaux fichiers sont créés, comme l'enlèvement des fichiers à partir de Git