Изменение git remote 'push на' по умолчанию
Я хочу изменить назначение удаленной ветви git по умолчанию, чтобы я мог просто
git push
вместо:
git push upstream
в настоящее время это установлено на исходный пульт, и я хочу установить его на другой пульт.
Я попытался удалить оригинальный (клонированный из) 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
пульт ДУ
просто уточнение (используя 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
теперь вы должны быть в курсе удаленного репозитория, и ваши тяги/толчки должны быть привязаны к соответствующему удаленному. Вы можете переключать пульты таким образом,в филиал. [Примечание][1]
по данным A официальная документация по конфигурации Git, вы можете создать по умолчанию push branch (просто поиск удаленного.pushdefault на этой странице), однако имейте в виду, что это не повлияет на репозитории/ветви, которые уже существуют, поэтому это будет работать, но только для новых репозиториев/ветвей. Вы должны помнить, что --global
установит пользовательские значения по умолчанию для репозитория (~ / .gitconfig хранит настройки), --system
будет установлен общесистемный репозиторий по умолчанию (/etc / gitconfig), и ни один флаг не будет устанавливать параметры конфигурации для текущего репозитория (./.gitconfig хранит настройки).
также следует отметить, что пуш.по умолчанию опция config предназначена для настройки ref-spec поведение не пульт ДУ поведение.
[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
команды, вы получаете ошибки, которые затем origin не существует, выполните следующие действия:
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."