Измените ветку по умолчанию для каждого настроенного Git Remote

Я знаю, что вы можете изменить пульт по умолчанию для ветки, выполнив:

git push -u remote branch

Но у меня есть несколько пультов, и я хочу просто иметь возможность:

git pull remote1git push remote2

И иметь ветку по умолчанию для каждого пульта (вероятно, то же самое, но не обязательно).

Я надеялся не делать git pull remote branch и git push remote branch каждый раз.

Моя текущая конфигурация имеет это:

[branch "main"]
    remote = origin

И это только из-за того, что я сделал вышеупомянутое git push -u ... для моего «основного» пульта.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Трехсторонние («треугольные») рабочие процессы не так уж хорошо поддерживаются в Git, но в некоторых особых случаях может быть полезно установить git config push.default, а в других особых случаях можно установить remote.remote.pushurl с пользой.

Проблема на самом фундаментальном уровне заключается в том, что любая ветвь может иметь только один набор вверх по течению; восходящий поток объединяет как имя удаленного устройства, так и имя ветки, найденное на этом удаленном устройстве, поэтому, если для ветки Б установлен восходящий поток U, запуск git push без аргументов отправляет на (один) назначенный удаленный, используя (один) назначенный имя, а git pull извлекается из (того же самого, одного) назначенного удаленного устройства и объединяется с (одним и тем же) единственным назначенным именем.

Использование git push -u — это просто короткий способ сказать: после того, как мой git push преуспеет, пожалуйста, бегите git branch --set-upstream-to и за меня. Поскольку это устанавливает (один, единственный) восходящий поток, это почти наверняка не то, что вы хотите здесь делать: либо восходящий поток уже установлен правильно, либо вы хотите установить его до (не после) команда git push.

Лучшее значение Лучший здесь, вероятно, равно прекратите использовать git push и git pull. Вместо этих команд напишите свои собственные команды, которые используют ваши собственные настройки конфигурации, чтобы делать все, что вы хотите. Запустите эти команды, а не git push и git pull. (Эти команды в конечном итоге будут запускать команды Git, возможно, даже git push и git pull, но с соответствующими удаленными именами и спецификациями ссылок.)

В противном случае просмотрите настройки, доступные для push.default, push.defaultRemote и remote.name.push, а также вышеупомянутые настройки remote.remote.pushurl, описанные в git config документация.

Другие вопросы по теме