Изменение git remote 'push to' по умолчанию


Я хочу изменить назначение удаленной ветви Git по умолчанию, чтобы я мог просто

git push

вместо:

git push upstream

в настоящее время это установлено на пульт дистанционного управления origin, и я хочу установить его на другой пульт.

Я попытался удалить оригинал (клонированный из) remote

git remote rm origin

который удалил оригинальный пульт дистанционного управления. Но не решает

8 131

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 команды, вы получаете ошибки, которые затем происхождение не существует выполните следующие действия:

  1. git remote -v

если есть какой-либо пульт, что мне все равно. Удалите их с помощью git remote remove 'name'

  1. 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."