Git: Используйте две ветки с одинаковыми именами с разных пультов - PullRequest
1 голос
/ 24 сентября 2019

Я использую репозиторий, который существует как на github, так и на внутреннем gitlab.Я настроил два пульта: origin (github) и gitlab.

Как мне легко взаимодействовать с веткой master обоих пультов?

Что я пробовал:

  1. git checkout --track gitlab/master -> ошибка: A branch named 'master' already exists.
  2. git checkout -b master-gitlab --track gitlab/master -> сработало, теперь у меня есть локальная ветвь master-gitlab иконсольный вывод говорит мне: master-gitlab set up to track remote branch master from gitlab. -> отлично, это то, что я хочу!
  3. git push gitlab master-gitlab -> это создает новую удаленную ветку master-gitlab на удаленном gitlab, которая не то, что я хочу и несовместимо с выводом последней команды.
  4. Теперь я могу сделать git push gitlab master-gitlab:master, который выдвигает master-gitlab на master пульта gitlab.Но я всегда забываю, как это сделать, и это не очень интуитивно понятно.

Есть ли более простой способ отследить ветку master другого пульта и нажать на нее?

Является ли это мерзкой ошибкой, которая сначала (3) говорит мне, что она отслеживает master, а затем создает новую ветку при нажатии?

1 Ответ

1 голос
/ 24 сентября 2019

Это не ошибка в том смысле, что git делает то, что говорит документация.Это также, возможно, не самый интуитивный результат в этом случае, но с тем, как много разных способов связать удаленные ветви с локальными ссылками, я не думаю, что есть поведение, которое будет интуитивно понятным для всех в любой ситуации.

Обычно конфигурация push настраивается отдельно от конфигурации push.(В документации git push приведено краткое изложение того, как она пытается выяснить, что нажимать, когда вы не указываете все в командной строке. https://git -scm.com / docs / git-push )

Тем не менее, конфигурация push default по умолчанию пытается использовать конфигурацию pull , если вы отправляете на пульт по умолчанию.Вы можете настроить push на постоянную настройку по умолчанию для исходящей конфигурации с помощью

git config push.default upstream

. Затем вы можете нажать master-gitlab, используя только

git push

, если он выписан, и

git push gitlab master-gitlab

в любом случае.Конечно, поскольку это меняет настройку по умолчанию, это может потенциально повлиять на ваши другие взаимодействия с gitlab, поэтому я рекомендую вам просмотреть документы и убедиться, что вы понимаете различия в поведении, чтобы решить, стоит ли оно того.

...