режим отчетов git diff меняется после перемещения репозитория - PullRequest
20 голосов
/ 13 января 2012

Я перенес кучу своих репозиториев git на другую ОС, скопировав на внешний жесткий диск.И теперь, когда я делаю git diff, он сообщает, что все режимы файлов изменились.

diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
diff --git a/.npmignore b/.npmignore
old mode 100644
new mode 100755
diff --git a/.travis.yml b/.travis.yml
old mode 100644
new mode 100755
diff --git a/LICENSE b/LICENSE
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755

Я не особо разбираюсь в правах доступа к файлам, что мне делать с этим?

Передать изменения режима?Изменить режим обратно для всех неисполняемых файлов?git reset?

Ответы [ 2 ]

40 голосов
/ 10 февраля 2013

Вы можете применить этот параметр

git config core.filemode false

, заставляя git игнорировать различия в режиме файла.

Это решение было найдено в ответе @ kan на другой вопрос

11 голосов
/ 13 января 2012

Возможно, на вашем внешнем жестком диске была другая файловая система, которая не учитывала исходные права доступа к файлу. Я бы просто исправил их вручную, прежде чем совершать.

Например, FAT32, который обычно используется на флэш-накопителях USB, не поддерживает разрешения на выполнение. Когда вы копируете файл из файловой системы FAT32 в обычную Unix-подобную файловую систему, он обычно устанавливает разрешение на выполнение для всех файлов, поскольку это менее опасно, чем отключение его для всех файлов.

Если вы хотите сохранить такую ​​информацию, не копируйте файлы непосредственно на диск; вместо этого создайте файл tar (необязательно сжатый), а затем распакуйте его на другом конце. Формат tar отслеживает биты разрешений Unix.

Обратите внимание, что сам git не отслеживает больше, чем исполняемый и неисполняемый файл. Если изменения режима - единственная разница, и вы не хотите переписывать все, вы можете превратить вывод git diff в сценарий, который выполняет chmod -x для всех затронутых файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...