Я хочу изменить назначение удаленной ветви Git по умолчанию, чтобы я мог просто
git push
Вместо того:
git push upstream
В настоящее время это установлен на исходный пульт, и я хочу установить его на другой пульт.
Я пытался удалить оригинальный (клонированный) пульт
git remote rm origin
Который действительно удалил оригинальный пульт. Но не решает git push
проблему. Я все еще получаю:
фатальный: нет настроенного пункта назначения Либо укажите URL-адрес из
командной строки, либо настройте удаленный репозиторий, используя ...
Я также пытался играть с:
git remote set-url --push myfork origin
и другие опции, но ни одна из них не работает (может быть, потому что я удалил удаленный источник слишком рано?)
После ответа здесь я попытался изменить:
git config push.default upstream (or matching)
но ни один не работал.
источник
git push -u <remote_name> <local_branch_name>:<corresponding_remote_branch_name>
.git push -u origin master:master
.git push
выдвинуть удаленную ветку текущей локальной ветки? Я имею в виду делать это, это означает, что я должен выполнить эту команду для каждой ветви. Правильно? Разве я не могу просто выполнить начальную настройку всего репо? @MarcoLazzerigit push -u origin master
достаточно? Вы просто иллюстрируете полный синтаксис?Чтобы изменить, какой «восходящий» пульт «подключен» к вашей ветке, используйте
git branch
команду с флагом «восходящий».Убедитесь, что пульт существует первым:
git remote -vv
Установите предпочтительный пульт для текущей (извлеченной) ветви:
git branch --set-upstream-to <remote-name>
Подтвердите, что ветка настроена с правильным восходящим удаленным:
git branch -vv
источник
git branch --set-upstream-to myfork
и получил ошибку:> ошибка: неизвестная опция `set-upstream-to 'Я запускаю git 1.7.9git remote set-url origin PATH_TO_REMOTE
)git branch -u <remotename>/<branch>
работал на меня. Команда была выполнена с проверенной местной веткой интересов. Обратитесь к разделу «Отслеживание Ветки» в git-scm.com/book/it/v2/Git-Branching-Remote-Branchesgit remote -v
илиgit remote --verbose
.-vv
«S дополнительный v является излишним.Работа с Git 2.3.2 ...
Теперь
status
,push
иpull
заострены наmyfork
удаленныйисточник
pull
.Вы можете легко изменить пульт по умолчанию для филиалов, просто используя эту команду
источник
Если вы это сделали
git push origin -u localBranchName:remoteBranchName
и последовательно выполнилиgit push
команды, вы получите ошибки, которых тогда не существует, а затем выполните следующие действия:git remote -v
Проверьте, есть ли какой-нибудь пульт, который меня не волнует. Удалить их с помощью
git remote remove 'name'
git config --edit
Ищите возможные признаки старого / несуществующего пульта дистанционного управления. Ищите
pushdefault
:Обновите
oldremote
значение и сохраните.git push
должен работать сейчас.источник
-u
при использованииgit push
на другой пульт из-за мышечной памяти. Это делает данный пульт по умолчанию, сброс его с помощьюgit config --edit
(или повторное нажатие и установка нового пульта) решил проблему.Просто пояснение (с использованием git версии 1.7.9.5 на Ubuntu 12.04):
Git добавит / удалит пульты. Это удаленные экземпляры git с подключенным сервером.
Затем вы можете получить указанный git-репозиторий так:
Кажется, что это создает ветку с именем «myremote», однако удаленный для ветви не устанавливается автоматически. Для этого вы должны сделать следующее:
Сначала убедитесь, что у вас есть эта проблема, т.е.
Вы должны увидеть что-то вроде:
Если вы видите
branch.myremote.remote=.
, то вы должны продолжить:Теперь вы должны быть в курсе событий с удаленным репозиторием, а ваши пулы / толчки должны быть привязаны к соответствующему пульту. Вы можете переключать пульты таким образом, для каждой ветви . [Примечание] [1]
Согласно Официальной документации Git Config , вы можете настроить push-ветку по умолчанию (просто выполните поиск remote.pushdefault на этой странице), однако имейте в виду, что это не повлияет на уже существующие репозитории / ветки, так что это будет работать, но только для новых репозиториев / веток. Вы должны помнить, что
--global
будут заданы пользовательские настройки репозитория по умолчанию (~ / .gitconfig),--system
будут установлены общесистемные настройки репозитория (/ etc / gitconfig), и ни один флаг не установит параметры конфигурации для текущего репозитория (./.gitconfig).Также следует отметить, что опция конфигурации push.default предназначена для настройки поведения ref-spec , а не удаленного поведения.
[1]:
git branch --set-upstream myotherremote
обычно работает здесь, однако git будет жаловаться, что не будет использовать ветку как свой удаленный, еслиgit branch --set-upstream myremote
используется. Однако я считаю, что это неправильное поведение.источник
git config -l | grep myremote
вы можете просто использовать:git config --get branch.myremote.remote
--get
предполагает определенное поведение, я отмечаю, что есть и другие способы настройки апстрима, но это дает возможность найти информацию, не полагаясь только на инструменты git. верный. Git не совершенен, лучше понять данные, что он делает, а затем надеяться, что его вызовы работают должным образом.Может быть полезно взглянуть на
.git/config
ваш репозиторий, в нем будут перечислены все пульты, а также пульт по умолчанию для каждой ветви.например.
Вы можете внести изменения в этот файл вручную, чтобы удалить ненужный пульт, или обновить пульты по умолчанию для разных ваших веток.
источник
Другой метод, который я только что нашел для решения этой проблемы (даже если я сначала удалил источник, что кажется ошибкой) - это непосредственное управление git config:
источник
git remote set-url origin PATH_TO_REMOTE
)Очень просто, собрав вместе некоторые из замечательных комментариев, а также мои собственные исследования этого.
Сначала проверьте локальную ветку, которую вы хотите привязать к вашей удаленной ветке:
Следующий:
где:
Вы должны получить сообщение:
источник
В моем случае я исправил следующее: * run
git config --edit
* В файле конфигурации git:источник
git remote set-url --push origin
должно работать, как вы упомянули, но вам нужно явно указать URL вместо альтернативного удаленного имени, напримерВы можете подтвердить это работает ли посредством производства
git remote -v
. Напримеристочник