Git melacak filepermission dan mengekspos perubahan izin saat membuat tambalan menggunakan git diff -p
. Jadi yang kita butuhkan adalah:
- buat tambalan terbalik
- hanya menyertakan perubahan izin
- terapkan tambalan ke copy pekerjaan kami
Sebagai satu-liner:
git diff -p -R --no-ext-diff --no-color \
| grep -E "^(diff|(old|new) mode)" --color=never \
| git apply
Anda juga dapat menambahkannya sebagai alias ke konfigurasi git Anda ...
git config --global --add alias.permission-reset '!git diff -p -R --no-ext-diff --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply'
... dan Anda dapat memintanya melalui:
git permission-reset
Catatan, jika Anda shell bash
, pastikan untuk menggunakan '
alih-alih "
tanda kutip di sekitar !git
, jika tidak maka akan diganti dengan git
perintah terakhir yang Anda jalankan.
Thx untuk @Mixologic untuk menunjukkan bahwa dengan hanya menggunakan -R
pada git diff
, yang rumit sed
perintah tidak lagi diperlukan.