central
Хранилище должно было быть установлено на новом сервере, поэтому я создал новый пульт на моем местном репо, и подтолкнул к этому.
Но теперь, когда я это делаю git pull
, он утверждает, что я в курсе. Это неправильно - он говорит мне о старой удаленной ветке, а не о новой, которая, как я знаю, имеет новые коммиты для извлечения.
Как изменить локальную ветку, чтобы отслеживать другой пульт?
Я могу видеть это в файле конфигурации git, но я не хочу все испортить.
[branch "master"]
remote = oldserver
merge = refs/heads/master
Ответы:
Используя git v1.8.0 или новее:
git branch branch_name
--set-upstream-to
your_new_remote/branch_name
Или вы можете использовать
-u
переключатель:git branch branch_name
-u
your_new_remote/branch_name
Используя git v1.7.12 или более раннюю версию :
git branch --set-upstream branch_name your_new_remote/branch_name
источник
git branch --unset-upstream
- затем она работает, как указано в этом ответе (или в следующемgit push -u / --set-upstream
).Для меня исправление было:
Затем:
источник
set-url
и забыли установить его обратно, то будущиеgit push
команды потерпят неудачуС обновленным git (2.5.5) команда выглядит следующим образом:
Это обновит удаленную отслеживаемую ветку для вашей текущей локальной ветки
источник
git branch --set-upstream-to=origin/develop
поднял ошибку:error: the requested upstream branch 'origin/develop' does not exist
. Ранее я переименовал удаленную ветку в delelop.git fetch --all
может быть?Другой вариант иметь много контроля над тем, что происходит, это редактировать ваши конфигурации вручную:
или стенография
Затем отредактируйте файл по своему желанию, сохраните и ваши изменения будут применены.
источник
Если вы в здравом уме, редактирование файла конфигурации достаточно безопасно. Если вы хотите быть немного более параноиком, вы можете использовать команду фарфор, чтобы изменить ее:
Конечно, если вы посмотрите на конфигурацию до и после, вы увидите, что она сделала именно то, что вы собирались сделать.
Но в вашем индивидуальном случае я бы сделал следующее:
То есть, если новый сервер будет каноническим удаленным, почему бы не назвать его источником, как если бы вы изначально клонировали его?
источник
remote rename
не будет делать то, о чем просят, поскольку он меняет имя пульта как в[remote]
конфигах, так и в[branch]
конфигах. Так что в этом случае нужно отредактировать файл конфигурации и сделать то, что вы говорите (переименование удаленных) только в[remote]
строках конфигурации.или
источник
git fetch
. Я создал новую ветку в bitbucket и хотел переключиться на нее. Git не знает об удаленных изменениях, поэтому я должен был сделатьgit fetch
раньшеgit checkout feature/new-feature-branch
. Надеюсь, это поможет кому-то еще.Это самая простая команда:
Например, данная команда
git remote -v
производит что-то вроде:Чтобы перейти к отслеживанию команды вместо:
источник
Вы можете удалить текущую ветку и сделать:
Или поменяйте замену удаленного сервера на текущий в конфиге
источник
git checkout --track -b local_branch_name origin/branch_name
Основываясь на том, что я понимаю из последней документации git , краткий обзор таков:
Это использование, кажется, немного отличается от ответа Уршрея, так как в его резюме это:
Я предполагаю, что они снова изменили документацию?
источник
В последней версии Git, как 2.7.4 ,
git checkout branch_name
# имя ветки, которую вы хотите изменить, отслеживая веткуgit branch --set-upstream-to=upstream/tracking_branch_name
#upstream - удаленное имяисточник
Я нашел пост @critikaster полезным, за исключением того, что мне приходилось выполнять эти команды с GIT 2.21:
источник
самый простой способ - просто нажать на новую ветку:
источник