Изменение git remote 'push to' по умолчанию
Я хочу изменить назначение удаленной ветви Git по умолчанию, чтобы я мог просто
git push
вместо:
git push upstream
в настоящее время это установлено на пульт дистанционного управления origin, и я хочу установить его на другой пульт.
Я попытался удалить оригинал (клонированный из) remote
git remote rm origin
который удалил оригинальный пульт дистанционного управления. Но не решает
8 ответов:
можно использовать
git push -u <remote_name> <local_branch_name>
для установки восходящего потока по умолчанию. Смотрите документация для git push для более подробной информации.
чтобы изменить, какой восходящий пульт дистанционного управления "подключен" к вашей ветви, используйте
git branch
команда с флагом восходящей конфигурации.убедитесь, что пульт дистанционного управления существует в первую очередь:
git remote -vv
установите предпочтительный пульт для текущей (проверенной) ветви:
git branch --set-upstream-to <remote-name>
проверьте, что ветвь настроена с помощью правильного восходящего пульта дистанционного управления:
git branch -vv
вы можете легко изменить удаленный по умолчанию для ветвей все сразу просто с помощью этой команды
git push -u <remote_name> --all
работа с Git 2.3.2 ...
git branch --set-upstream-to myfork/master
теперь
status
,push
иpull
указаныmyfork
remote
просто уточнение (с помощью git версии 1.7.9.5 на ubuntu 12.04):
Git будет добавлять / удалять пульты дистанционного управления. Это удаленные экземпляры git с подключенным сервером.
git remote add myremote git://remoteurl
затем вы можете получить указанный репозиторий git следующим образом:
git fetch myremote
кажется, что это создает ветвь с именем "myremote", однако пульт дистанционного управления для ветви не устанавливается автоматически. Для этого необходимо сделать следующее:
во-первых, убедитесь, что у вас есть эта проблема, то есть
git config -l | grep myremote
вы должны увидеть что-то вроде:
remote.myremote.url=git://remoteurl remote.myremote.fetch=+refs/heads/*:refs/remotes/myremote/* branch.myremote.remote=. branch.myremote.merge=refs/heads/master
если вы видите
branch.myremote.remote=.
, то вы должны продолжить:git config branch.myremote.remote myremote git checkout myremote git pull
теперь вы должны быть в курсе удаленного репозитория, и ваши pulls/pushs должны быть привязаны к соответствующему удаленному устройству. Вы можете переключать пульты таким образом,в филиал. [Примечание][1]
по данным A официальная документация git Config, вы можете настроить a по умолчанию push branch(просто поиск удаленного.pushdefault на этой странице), однако имейте в виду, что это не повлияет на репозитории/ветви, которые уже существуют, поэтому это будет работать, но только для новых репозиториев/ветвей. Вы должны помнить, что
--global
установит пользовательские настройки репозитория по умолчанию (~ / .gitconfig),--system
установит общесистемные значения по умолчанию для репозитория (/etc / gitconfig), и ни один флаг не будет устанавливать параметры конфигурации для текущего репозитория (./.gitconfig).также следует отметить, что пуш.по умолчанию опция config предназначена для настройки ref-spec поведение неremote поведение.
[1]:
git branch --set-upstream myotherremote
обычно работает здесь, однако git будет жаловаться, что он не будет устанавливать ветку как свой собственный пульт, если это. Я считаю, однако, что это неправильное поведение.
другой метод, который я только что нашел для решения этой проблемы (даже если я сначала удалил origin, что кажется ошибкой), напрямую управляет конфигурацией git:
git config remote.origin.url url-to-my-other-remote
если ты
git push origin -u localBranchName:remoteBranchName
и далее последовательноgit push
команды, вы получаете ошибки, которые затем происхождение не существует выполните следующие действия:
git remote -v
если есть какой-либо пульт, что мне все равно. Удалите их с помощью
git remote remove 'name'
git config --edit
ищите возможные признаки старого / несуществующего пульта дистанционного управления. Ищите
pushdefault
:[remote] pushdefault = oldremote
обновление
oldremote
значение и сохранить.
git push
должно сработать сейчас.
очень просто, и собирая вместе некоторые из замечательных комментариев здесь вместе с моим собственным исследованием этого.
во-первых, проверьте локальную ветвь, которую вы хотите привязать к удаленной ветви:
git checkout mybranch
следующий:
git branch -u origin/mybranch
где:
git branch -u {remote name}/{branch name}
вы должны получить сообщение:
"Branch mybranch set up to track remote branch mybranch from origin."