Сначала вам нужно сделать свои наблюдения более последовательными.Вы начинаете с предоставления временной шкалы
В момент времени 0 кто-то другой изменил файл B и переместился в удаленный режим.
В момент времени 1 я изменяю файл A на своем компьютере и фиксирую
(выделение добавлено).Затем вы сравниваете свою ситуацию с вопросом «git pull создает коммит слияния , даже если у меня нет локальных изменений » (выделение добавлено).
Конечно, этот ответ к вам не относится;у вас есть локальные изменения.
А когда у вас есть локальные изменения, обычное поведение - создать коммит слияния при извлечении удаленных изменений.
Тогда вы сказали, что клиент git-tower не произвел коммит слияния.Это может произойти по трем причинам.
1) Клиент может быть настроен на перебазирование вместо слияния;но вы сказали, что это не так.
2) Не может быть локальных изменений
3) Не может быть удаленных изменений - что, если вы пытались сделать это сразу после наблюденияpull, который создал слияние, весьма вероятен, поскольку изменения в слиянии больше не являются просто удаленными.
Таким образом, вопрос не в том, что не так с вашей настройкой git;вопрос в том, какие опции у вас есть, если вы не хотите коммитов слияния.
Опущенная мною опция, на которую указывает Трек в комментариях ниже, заключается в использовании более фундаментальных команд.Итак, fetch
внесите изменения, а затем интегрируйте их в свой локальный доступ любым удобным для вас способом (merge
или rebase
и т. Д.).Пока вы не освоитесь с тем, что делают команды, это может быть лучшим вариантом.
(я знаю, что git специально говорит, что вытащить сообщение об ошибке; но pull и (слияние или выборка) будут делать простоа также.)
Другой вариант - использовать rebase.Согласно git docs, это считается потенциально опасным, но это довольно распространенная практика.Если вы понимаете rebase и его значение, это разумный путь.Чтобы сконфигурировать git для использования rebase, вы можете сделать что-то вроде
git config --global pull.rebase true
Другой вариант - использовать локальные ветки, отличные от существующих на удаленном компьютере.(Это может показаться странным, но существуют жизнеспособные рабочие процессы, основанные на этой идее.) В этом случае ваши слияния или перебазировки выбираются явно при интеграции одной ветви в другую, а не принудительно, когда вы неявно интегрируете изменения посредством вытягивания.