Этот вопрос очень похож на этот вопрос о слиянии , но с одним ключевым отличием: отсутствие конфликта слияния.
Итак, я работаю в ветви функций, фиксирую некоторые изменения и запускаю git merge master
. Моя цель состоит в том, чтобы обновить ветвь функций до последней версии, прежде чем я создаю PR, чтобы объединить ветвь обратно с мастером (это наш выбранный рабочий процесс, идея состоит в том, чтобы сначала решить проблемы с ветвями функций). Я получаю ноль конфликтов слияния, и слияние кажется завершенным. Когда я запускаю git log
, кажется, что моя ветвь функций теперь имеет последние коммиты от master. Однако, когда я запускаю git status
, куча файлов, которые я не трогал (но которые, по-видимому, были обновлены в master), внезапно попадает в мой список «Изменения в подтверждении», и их совокупность отображается как «Изменения не установлены» для коммита "и" неотслеживаемых файлов ". Это не один к одному, в моем последнем примере я разместил 45 файлов, а только 33, которые не были установлены + изменены или не отслежены. Я не фиксирую эти файлы, так как кажется, что в ветви функций уже есть последние коммиты от master.
Я до сих пор имел дело с этой проблемой, просто запустив git stash
(и периодически очищая свой тайник). Иногда я запускаю get reset HEAD
, чтобы очистить его тоже. Это кажется нормальным, так как у меня есть последние коммиты от мастера. Однако я не уверен, являются ли эти действия желательными или правильными. Я пропускаю важную часть рабочего процесса git merge, игнорируя эти промежуточные файлы? Что здесь происходит? Как называется это поведение? Я не могу найти ссылку на это ни в одном из руководств, которые я прочитал.
Последнее замечание, которое может помочь. Я работаю на Mac, но это проект .net + React, поэтому многие разработчики работают на Windows. Может ли это быть проблемой autocrlf или других вариантов окончания строки между платформами?