Git (или tortoisegit) помечает файл LFS как измененный, предотвращает push или pull

У меня проблема с нашим git-репо. У нас есть один файл LFS, который когда-либо изменялся только одним из наших пользователей на компьютере Mac. Пользователь Mac тянет и толкает без инцидентов.

Но на компьютере разработчика Windows git (или tortoisegit) автоматически помечает файл LFS как измененный, даже если это не так. Я думаю, это потому, что переход от указателя к файлу не совсем понятен tortoisegit.

Уродливый эффект заключается в том, что пользователь Windows пытается выдвинуть и получает сообщение "Вы должны вытащить", но затем пытается выдвинуть и получить конфликт слияния из-за не совсем измененного файла LFS. Однако в раскрывающемся списке черепахи для предполагаемого конфликта нет варианта разрешения.... Возврат устанавливает значок обратно к неизмененному, но любое действие tortoisegit все еще терпит неудачу, как будто файл lfs был изменен и сбрасывает статус значка к измененному.

Поскольку пользователь не может выдвинуть, не может вытащить и не может разрешить конфликт слияния, который вызывает невозможность толкания или извлечения, пользователь застрял. Я гуглил и нашел несколько старых постов, в которых говорится, что tortoisegit не совсем правильно обрабатывает lfs и вызывает это, но есть ли у кого-нибудь лучшее представление о том, как решить эту проблему, чем страшный метод проб и ошибок с помощью команд git?

1 ответ

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

  1. Пользователь (windows) фиксирует изменения в tortoisegit, убрав галочку и, таким образом, не включив файл lfs с ошибочно помеченными и измененными в коммит
  2. Пользователь удаляет (не tortoisegit удаляет, а просто старый файл Windows удаляет) ошибочно помеченный-модифицированный lfs-файл
  3. Файл теперь отображается как "отсутствующий" в статусе черепахи, если просматривается
  4. Пользователь выполняет извлечение, и файл lfs извлекается успешно без конфликта слияния
  5. Теперь пользователь может успешно нажать коммит

Этот метод мы используем, пока не обнаружим исправление для файла lfs, неправильно помеченного как измененное.

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