Git/stash рассматривает unchanges файлы как совершенно новые

Я пытаюсь написать скрипт для резервного копирования некоторых файлов на еженедельной основе с помощью git.
Структура моего скрипта следующая:

  1. Перейдите в локальный каталог, где будут внесены изменения
  2. оформить заказ
  3. запустить скрипт для перезаписи всей папки с текущими файлами
  4. git add --all
  5. git push

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

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

Кто-нибудь сталкивался с такой проблемой раньше / знает, что может быть причиной?

1 ответ

Две возможные причины:

  • другое разрешение (644 или 755)
  • другой eol (конец строки): проверьте diff для одного измененного файла с помощью:

    git -c color.diff.whitespace="red reverse" diff -R -- afile
    

Проверьте также для любого text=auto директива в .gitattributes файл

Удостовериться git config --global core.autocrlf установлен в false (и что у вас нет местных git config autoocrlf в вашем репо).
Для разрешения файла, git config --global core.filemode false может помочь.

Затем попробуйте снова оформить / переопределить / добавить / зафиксировать и нажать последовательность.

Другие вопросы по тегам