Comment modifier le Mode fichier sur GitHub?
$ git add test-file
$ git commit -m 'first commit'
create mode 100644 test-file
$ git push
$ git update-index --add --chmod=+x test-file
$ git commit -m 'change mode'
mode change 100644 => 100755 test-file
$ git push
après cela si vous allez à GitHub il montre toujours comme 100644 quoi qu'il arrive.
2 réponses
MSYS n'est pas le problème. Même si MSYS chmod
ne fonctionne pas (il ne marche pas), Git a construit dans le moyen de contourner le problème, c'est à dire git update-index --chmod=+x
. Que ce soit clair que git update-index
ne modifie que l'index (staging area), pas le dépôt local (working directory).
je suis convaincu que le problème est avec GitHub. Sur GitHub si un fichier est d'abord poussé en mode 100775, tout va bien. Si un fichier est d'abord poussé comme 100644 il les causes d'un problème. Les tentatives de modification du mode file réussiront avec git add
, réussir avec git commit
, réussir avec git push
, et même de le montrer dans le GitHub de l'historique des fichiers, mais être reflétée sur la page" blob/master " sur GitHub.
mise à Jour
À Partir De: Petros Amiridis (GitHub Personnel)
sujet: Comment changer le Mode de fichier sur GitHub?
j'ai de bonnes nouvelles. Notre super équipe vient de confirmer qu'il s'agit d'une Cache bogue sur notre fin. Notre équipe a déployé une solution.
je pense que le problème est que MSYS, sur lequel L'implémentation Windows de git est basée, ne gère pas chmod
correctement.
(EDIT: L'autre réponse, dit-MSYS n'est pas le problème, ce qui semble plausible.)
Ma conjecture est que la commande
git update-index --add --chmod=+x test-file
fonctionne en mettant à jour les métadonnées dans le dépôt local (ce qui devrait fonctionner) et en modifiant les permissions sur le fichier (ce qui ne fonctionne pas), en mettant le dépôt local dans un état incohérent.
vous devriez être en mesure de revenir en arrière en défaisant le update-index
:
git update-index --add --chmod=-x test-file
git commit -m 'change mode back'
git push
pour remettre le dépôt dans un état cohérent, puis faire le changement dans une copie non-Windows du dépôt. Si vous n'avez pas accès à Linux ou à un autre système de type Unix, Cygwin comprend git
(pas par défaut, mais vous pouvez l'installer via setup.exe
) et vous donne un environnement dans lequel chmod
fonctionne réellement. Le shell par défaut pour Cygwin est bash, donc l'environnement devrait être familier si vous avez utilisé git bash.
le fichier ne sera toujours pas exécutable lorsque vous le regardez depuis le shell git bash, mais il devrait apparaître comme 100755
dans l'interface web GitHub.