Je viens de transformer un some.sh
fichier en exécutable ( chmod 755 ...
), les permissions ont été mises à jour mais pas le contenu. Existe-t-il un moyen de valider le fichier dans git, de sorte que le bit exécutable soit restauré / défini sur clone / checkout / pull ?
Mise à jour: comment puis-je savoir que les nouvelles autorisations ont été soumises github
?
github
?git status
, je vois des changements ..L'article @fooMonster a fonctionné pour moi
Comme vous pouvez le voir, le fichier a la permission 644 (ignorant les 100). Nous aimerions le changer en 755:
valider les changements
la source
git commit -a
n'a rien fait pour moi, mais la configuration du message sur la ligne de commande l'a fait. Bit of a# git update-index --chmod=+x script.sh
# git ls-tree HEAD
# git commit -m "Changing file permissions"
# git push
Ne travaille pas pour moi.
Le mode est vrai, les perms de fichiers ont été modifiées, mais git dit qu'il n'y a pas de travail à faire.
Le problème semble être que git ne reconnaît que certaines modifications d'autorisation.
la source
git
ne détecte vraiment que si un fichier est exécutable ou non, pas l'ensemble complet des autorisations * nix. Il faudrait donc basculer un fichier entre exécutable / non pour qu'il pense que vous avez changé quelque chose qui vaut la peine d'être engagé ...post-checkout
hook ingit
, qui couvrirait certains cas, mais je ne suis pas sûr que cela couvre toutes les choses possibles qui mettent à jour les fichiers dans votre arbre de travail. Vous feriez peut-être mieux d'avoir un script shell supplémentaire dans votre référentiel qui définit les choses en conséquence. Alternativement, il existe quelques projets qui augmententgit
pour stocker les métadonnées, mais je n'ai jamais vraiment essayé aucun d'entre eux ...git update-index --refresh
, mais le diff montreold mode 100644 new mode 100755
. Il n'a pas mis à jour toutes les autorisations