git pull --rebase: передача --rebase-merges - PullRequest
2 голосов
/ 16 мая 2019

Это то, что я обычно делаю, перебирая мою текущую ветвь, не допуская, чтобы моя локальная ветвь не сглаживалась:

git fetch origin
git rebase -r origin/develop

-r - это --rebase-merges, который я предпочитаю --preserve-merges

Мой вопрос: есть ли способ передать это при выполнении git pull --rebase?

Например, я бы хотел выполнить эквивалент команды выше, например:

git pull --rebase=rebasemerges origin develop

вместо:

git pull --rebase=preserve origin develop

** edit: OK - похоже на 2.22, --preserve-merges становится устаревшим в пользу --rebase-merges. Это для git rebase, хотя - скрещенные пальцы изменения переносятся на git pull --rebase

Ответы [ 2 ]

1 голос
/ 11 июня 2019

git 2.22 был выпущен.

Чтобы ответить на мой собственный вопрос - это эквивалентная команда:

git pull --rebase=merges origin develop

Взято из страницы руководства:

-r --rebase [= false | true | merges | preserve | interactive] При значении true перебазировать текущую ветку поверх ветви восходящей после выборки.Если существует ветвь удаленного отслеживания, соответствующая ветке upstream, и ветвь upstream была перебазирована с момента последней выборки, rebase использует эту информацию, чтобы избежать перебазирования нелокальных изменений.

Когда установлено слияние, перебазируйте, используя gitrebase --rebase-merges, чтобы локальные коммиты слияния были включены в rebase (подробности см. в git-rebase 1 ).

Чтобы сделать это поведение извлечения по умолчанию:

git config --global pull.rebase merges

1 голос
/ 16 мая 2019

Да, как я объяснил в « Что именно делает« rebase --preserve-merges »в git (и почему?) », старая опция --preserve-merges исчезнет.

И даопция git pull -r будет соответственно обновлена, но она еще не реализована.
Смотрите здесь готовящийся патч .

...