Git permet de suivre de filepermission et expose les modifications des autorisations lors de la création de patchs à l'aide d' git diff -p
. De sorte que tous nous avons besoin est:
- créer une inversion de patch
- inclure uniquement les modifications des autorisations
- appliquer le patch pour notre copie de travail
Comme un one-liner:
git diff -p -R \
| grep -E "^(diff|(old|new) mode)" \
| git apply
vous pouvez également ajouter un alias à votre git config...
git config --global --add alias.permission-reset '!git diff -p -R | grep -E "^(diff|(old|new) mode)" | git apply'
...et vous pouvez les appeler via:
git permission-reset
Remarque, si vous le shell est - bash
, assurez-vous d'utiliser '
au lieu de "
des guillemets autour de la !git
, sinon il se substituer au dernier git
commande exécutée.
Merci à @Mixologic pour préciser que simplement à l'aide de -R
sur git diff
, la lourdeur sed
de commande n'est plus nécessaire.