Изменение 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 не существует, выполните следующие действия:

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