Следует отметить, что это поведение зависит от вашей конфигурации.При использовании поведения pull
по умолчанию - «извлечение и объединение» - вы можете иметь локальные изменения, и pull
будет работать до тех пор, пока изменения в объединении не влияют на тот же файл (ы), что и локальные изменения.
Однако при выполнении rebase
мерзавец более осторожен.Вы можете спорить о том, является ли это необходимым, или же оно мотивировано техническими подробностями того, что входит в rebase
, что, возможно, вы думаете, что пользователю не нужно беспокоиться.Но в любом случае, это поведение git.
Если вы действительно хотите, чтобы это было автоматически, вы можете использовать автоматическое копирование.Самый простой способ - сказать
git pull --autostash
Если вы хотите, чтобы он был еще более автоматическим, вы можете установить значение конфигурации rebase.autostash
на true
.Тем не менее, это делает автоматическое сохранение по умолчанию для всех перебазировок в пределах значения конфигурации (т. Е. В репо или на вашем компьютере, если вы сконфигурируете это с опцией --global
).Это означает, что вы получите попытку перебазирования (и потенциально трудно распутать конфликты), когда вы перебазируете с грязным рабочим деревом.autostash
считается опцией «использовать с осторожностью», поэтому я не рекомендую настраивать его как значение по умолчанию.
В этом отношении, даже если вы просто используете аргумент --autostash
в pull
,тебе следует быть осторожным.Сам факт того, что вы выполняете пуллзу на основе ребаз, задокументирован как «потенциально опасный», поэтому вы должны быть уверены, что знаете, что делаете, когда накладываете autostash
поверх этого.