Как сделать git pull использовать rebase по умолчанию для всех моих репозиториев?
есть ли способ настроить репозиторий Git хоста таким образом, что любой git pull сделано из его (локальных) клонов использует --rebase по умолчанию? При поиске на переполнение стека, я узнал о branch.autosetuprebase, но он должен быть настроен на каждого клона в отдельности.
мой поток проекта настроен так, что мы pull the develop филиала перед mergeing ветвь функции к нему. Это pull почти всегда использует --rebase, поэтому я пытаюсь выяснить, может ли это быть по умолчанию.
4 ответов:
теперь есть 3 различных уровня конфигурации для поведения по умолчанию тяги. От самых мелкозернистых до самых общих, они являются:
1.
branch.<branchname>.rebaseзадание
trueозначает, что эта конкретная ветвь всегда будет тянуть из своего восходящего потока через перебазирование, еслиgit pull --no-rebaseявно используется.2.
branch.autosetuprebaseзадание
alwaysозначает, что всякий раз, когда создается ветвь отслеживания, запись конфигурации, подобная той выше будет создано для него. Для более мелкозернистого управления, это также может быть установлено вnever,localилиremoteи может быть установлен для каждого репозитория или глобально. Смотритеgit config --helpдля более подробной информации.3.
pull.rebaseзадание
trueозначает, чтоgit pullвсегда эквивалентноgit pull --rebase(еслиbranch.<branchname>.rebaseявно задано значениеfalse). Это также может быть установлено для каждого репозитория или глобально.вывод
так что пока вы не можете изменить поведение по умолчанию для всех будущих клонов репозитория вы можете изменить значение по умолчанию для всех репозиториев текущего пользователя (существующих и будущих) через
git config --global pull.rebase true.
как о
git config --global --bool pull.rebase trueэто сказать Git, чтобы всегда тянут с перебазироваться.
ответа нет.
нет способа настроить удаленный репозиторий так, чтобы каждый, кто клонирует его, имел поведение по умолчанию
git pullизменен.вы можете, однако, настроить серверный крюк, который проверяет, что никто не толкает коммиты слияния (что-то вроде этого, возможно).
есть также некоторые параметры конфигурации, которые вас могут заинтересовать. Все разработчики, которые клонируют из удаленного репозитория, должны будут установить это сами вручную.
1. Вариант
branch.<name>.rebaseвы можете Настроить локальную ветвь, чтобы всегда использовать
--rebase, вот так, заменив<name>название филиала:git config branch.<name>.rebase trueпосле этого на
masterна на.git/configвыглядело так:[branch "master"] remote = origin merge = refs/heads/master rebase = true2. Вариант
branch.autosetuprebaseзапуск этой предыдущей команды конфигурации для каждой ветви Git может быть хлопот, поэтому вы можете настроить Git для автоматической настройки для каждой новой ветви:
git config branch.autosetuprebase always(можно также указать
never,remoteиlocalсм.man git-configдля сведения.)без
--globalопция, конфигурация сохраняется в.git/config, и затрагивается только текущий репозиторий. С--globalконфигурация сохраняется в~/.gitconfig, и каждый неконфигурированный репозиторий будет затронут.этот параметр не влияет на уже существующие ветви.
3. Выбор
pull.rebasegit config --bool pull.rebase true(вы также можете дать ему .)
если этот параметр имеет значение true, выполняется
git pullэквивалентноgit pull --rebase, еслиbranch.<name>.rebaseимеет значениеfalse.
это делает
--rebaseопция по умолчанию при выдачеgit pullв данной отрасли.@Flimm, мне нужно было добавить
trueчтобы сделать ваш первый вариант работы.поэтому правильный синтаксис:
git config branch.<branch>.rebase trueчтобы выполнить эту команду на
developотрасли:git config branch.develop.rebase trueи теперь на
.git/configвыглядит так:[branch "develop"] remote = origin merge = refs/heads/develop rebase = true
Comments