Git (или tortoisegit) помечает файл LFS как измененный, предотвращает push или pull
У меня проблема с нашим git-репо. У нас есть один файл LFS, который когда-либо изменялся только одним из наших пользователей на компьютере Mac. Пользователь Mac тянет и толкает без инцидентов.
Но на компьютере разработчика Windows git (или tortoisegit) автоматически помечает файл LFS как измененный, даже если это не так. Я думаю, это потому, что переход от указателя к файлу не совсем понятен tortoisegit.
Уродливый эффект заключается в том, что пользователь Windows пытается выдвинуть и получает сообщение "Вы должны вытащить", но затем пытается выдвинуть и получить конфликт слияния из-за не совсем измененного файла LFS. Однако в раскрывающемся списке черепахи для предполагаемого конфликта нет варианта разрешения.... Возврат устанавливает значок обратно к неизмененному, но любое действие tortoisegit все еще терпит неудачу, как будто файл lfs был изменен и сбрасывает статус значка к измененному.
Поскольку пользователь не может выдвинуть, не может вытащить и не может разрешить конфликт слияния, который вызывает невозможность толкания или извлечения, пользователь застрял. Я гуглил и нашел несколько старых постов, в которых говорится, что tortoisegit не совсем правильно обрабатывает lfs и вызывает это, но есть ли у кого-нибудь лучшее представление о том, как решить эту проблему, чем страшный метод проб и ошибок с помощью команд git?
1 ответ
Надлежащим решением этого было бы то, в котором файл lfs не был ошибочно помечен как измененный. Тем не менее, я сейчас использую этот обходной путь:
- Пользователь (windows) фиксирует изменения в tortoisegit, убрав галочку и, таким образом, не включив файл lfs с ошибочно помеченными и измененными в коммит
- Пользователь удаляет (не tortoisegit удаляет, а просто старый файл Windows удаляет) ошибочно помеченный-модифицированный lfs-файл
- Файл теперь отображается как "отсутствующий" в статусе черепахи, если просматривается
- Пользователь выполняет извлечение, и файл lfs извлекается успешно без конфликта слияния
- Теперь пользователь может успешно нажать коммит
Этот метод мы используем, пока не обнаружим исправление для файла lfs, неправильно помеченного как измененное.