git - переключение на локальную разработку, затем возврат к функциональной ветке сбрасывает статус измененных / добавленных файлов - PullRequest
0 голосов
/ 15 ноября 2018

Я добавил некоторые изменения в свою ветку функций, поставил, зафиксировал и передал ее в исходное состояние с помощью команды push -u git.

На следующий день я обновил свои локальные ветки разработки и функций, чтобы получать последний код из удаленногоиспользуя стандартные процедуры git fetch / git merge.

На этом этапе я вижу некоторые интересные вещи:

Я нахожусь в своей ветви функций, git status говорит мне, что все чисто, этоправильно

Я переключаюсь на ветку разработки, git status показывает, что все чисто, это правильно

Я переключаюсь назад на свою ветку функций, git status сообщает обо всех моих изменениях, которые я уже отправилудаленный день раньше:

  1. STAGED (ЗЕЛЕНЫЙ) - Мои изменения удаляются (что помечает некоторые файлы как готовые к фиксации).Существующие файлы помечаются как измененные, и мои изменения удаляются из них.Добавленные мной файлы помечены как удаленные,
  2. НЕ УСТАНОВЛЕНЫ (ФИОЛЕТОВЫЕ) - Существующие файлы проекта, которые я изменил как часть моего push,
  3. UNTRACKED (КРАСНЫЙ) - Новые файлы, которые я добавил в проект, как часть моего пуша выше.

Я не понимаю, почему это происходит, но этого не должно быть.

Если япроблема git add ., в git не отображается сообщение, я только что вернулся к терминальной команде.

Если я сейчас выдаю git status, то теперь это показывает, что моя ветвь функций обновлена: «ничего не коммитить, рабочее дерево»is clean ".

Переключение назад и вперед от функции разработки и разработки к функциональным веткам, как описано выше на моем Mac, воспроизводит одну и ту же проблему снова и снова.На моем компьютере с Windows эта проблема вообще не воспроизводится.

Итак, я пришел к выводу, что что-то не так с моим окружением git на моем компьютере Mac .

Но затем я также попытался получить совершенно новый клон своего проекта.на моем Mac (который теперь содержит мою функциональную ветку, так как я передавал ее со всеми своими изменениями с помощью команды git push -u), затем попытался переключаться назад и вперед в этом клоне между разработкой и моей функциональной веткой, и проблема НЕ возникала.Это сделало это еще более запутанным.

Похоже, что-то не обновляется должным образом с моим мерзавцем на моем компьютере Mac.Что это может быть и как это исследовать?

Мы - кроссплатформенная команда, работающая как на Mac, так и на Windows.Для моего core.autocrlf установлено значение input на моем Mac и true на моем Windows.Я не знаю других параметров команды для core.autocrlf.

1 Ответ

0 голосов
/ 29 ноября 2018

Во-первых, убедитесь, что для git config core.autocrlf установлено всегда , для которого установлено значение false (в Windows или Mac).
Любое преобразование EOL, которое вам может понадобиться, должно выполняться в атрибуте .gitattributes eol .

Затем проверьте свой git config -l в своем репо на двух платформах: драйвер фильтра содержимого может быть примером автоматической модификации при фиксации, которая не может быть объявлена ​​на другой платформе.

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