Мерзавец отменить ошибочное отслеживание ветви
Я хотел настроить мою локальную ветку магистрали, чтобы отслеживать происхождение / магистраль, но использовал команду
git branch --set-upstream origin/mainline mainline
по ошибке,
с результатом Branch origin/mainline set up to track local branch mainline
,
Как я могу это исправить, чтобы локальная магистраль отслеживала удаленную магистраль?
3 ответа
У вас неправильный порядок аргументов, что вы хотите git branch --set-upstream mainline origin/mainline
,
увидеть:
-t, --track
При создании новой ветви настройте конфигурацию, чтобы пометить ветку начальной точки как "восходящую" от новой ветви. Эта конфигурация скажет git показать связь между двумя ветвями в git status и git branch -v. Более того, он направляет git pull без аргументов для извлечения из восходящего потока при извлечении новой ветви.
Это поведение по умолчанию, когда отправной точкой является ветвь удаленного отслеживания. Установите для переменной конфигурации branch.autosetupmerge значение false, если вы хотите, чтобы git checkout и git branch всегда вели себя так, как если бы был задан параметр --no-track. Установите это значение всегда, если вы хотите, чтобы это происходило, когда отправной точкой является локальная или удаленная ветвь отслеживания.
--set-вверх по течению
Если указанная ветвь еще не существует или если задан параметр --force, он действует точно так же, как и --track. В противном случае настраивает конфигурацию, как --track при создании ветви, за исключением того, куда указывает ветка, не изменяется.
Итак, что вы сделали, это создали местный филиал с именем origin/mainline
какие треки mainline
ветка.
Я столкнулся с похожей проблемой использования:
git branch -t origin/master
вместо git branch --set-upstream-to=origin/master
отслеживать происхождение / мастер.
Несколько более простое решение было: я удалил **** локальную ветку ** Origin/master**, которая была создана первой.
А потом сделал: git branch --set-upstream-to=origin/master
успешно, потому что теперь он может обнаружить фактическое происхождение / мастер.
Похоже, git создал другую локальную ветку origin/mainline и сделал это для отслеживания mainline. я использовал git config -e
а затем установить remote=origin
для основной линии (происхождение уже определено), а затем git branch -d origin/mainline
удалить местное отделение. Кажется, обратились к проблеме.