Я путаюсь с удаленными ветками.
Мой локальный репо:
(local) ---A---B---C-master
Мое удаленное репо (называется int):
(int) ---A---B---C---D---E-master
Что я хочу сделать, так это настроить основную ветку локального репо, чтобы она соответствовала int.
Локальное РЕПО:
(local) ---A---B---C---D---E-master-remotes/int/master
Так что когда int изменится на:
(int) ---A---B---C---D---E---F-master
Я могу запустить git pull
от мастера локального репо и получить
(local) ---A---B---C---D---E---F-master-remotes/int/master
Вот что я пробовал:
git fetch int
переводит меня все ветви int в удаленные ветви. Это может запутаться, поскольку int может иметь сотни веток.
git fetch int master
получает мне коммиты, но без ссылки на него, только FETCH_HEAD
. Удаленной ветви тоже нет.
git fetch int master:new_master
работает, но я не хочу, чтобы новое имя каждый раз обновлялось, и удаленная ветвь не настроена.
git pull int master
делает то, что я хочу, но по-прежнему нет настройки удаленной ветви. Я чувствую, что это нормально (это лучшее, что у меня есть сейчас), но я тут и там читал, что для удаленной настройки достаточно с git pull
.
git branch --track new_master int/master
, согласно http://www.gitready.com/beginner/2009/03/09/remote-tracking-branches.html. Я получаю «недопустимое имя объекта: int / master». git remote -v
показывает, что int определен и указывает на правильное местоположение (1. работал). Я скучаю по ветке int / master, которую я и хочу получить.
git fetch in master:int/master
. Хорошо, int / master создан, но не удален.
Итак, подведу итог: я попробовал кое-что без удачи. Я ожидаю, что 2 даст мне удаленную ветку для управления в репо int.
Решение, которое я использую сейчас, это вариант 3.
Я где-то читал, что вы можете вручную изменить какой-нибудь конфигурационный файл, но не слишком ли это громоздко?
"Громоздкий" способ редактирования файла конфигурации сработал:
[branch "master"]
remote = int
merge = master
Это можно сделать из командной строки:
$ git config branch.master.remote int
$ git config branch.master.merge master
Любая причина, почему вариант 2 выше не будет делать это автоматически?
Даже в этом случае git pull
выбирает все ветви с пульта.