Ответ 1
Возможно, на вашем внешнем жестком диске была другая файловая система, которая не соответствовала исходным разрешениям на файлы. Я просто исправлю их вручную, прежде чем совершить.
Например, FAT32, который обычно используется на флэш-накопителях USB, не поддерживает разрешения на выполнение. Когда вы копируете файл из файловой системы FAT32 в обычную Unix-подобную файловую систему, она обычно устанавливает разрешение на выполнение для всех файлов, поскольку это менее вредно, чем отключение для всех файлов.
Если вы хотите сохранить такую информацию, не копируйте файлы непосредственно на диск; вместо этого сделайте tar файл (возможно сжатый), а затем распакуйте его на другом конце. Формат tar сохраняет информацию о битах разрешения Unix.
Обратите внимание, что git сам не отслеживает больше, чем исполняемый или невыполняемый. Если изменения режима являются единственной разницей, и вы не хотите повторно копировать все, вы можете отключить вывод git diff
в script, а chmod -x
для всех затронутых файлов.