Мой обычный рабочий процесс при работе с git выглядит примерно так:
- создать локальный репозиторий
- поработайте в этом репозитории, добавьте / измените файлы и т. д.
- решите, что мне нужно центральное удаленное место для репозитория, и создайте его
- отправьте все коммиты из моего локального репозитория в этот новый удаленный репозиторий
Однако теперь я хочу иметь возможность входить push
и выходить pull
из этого удаленного репозитория без необходимости указывать, куда я нажимаю или извлекаю; Я хочу, чтобы мой локальный мастер отслеживал удаленного мастера.
Правильный способ сделать это не ясно для меня, и я не смог определить его из документации, даже если это не должно быть действительно больше , чем одна команда.
Поскольку это делается только один раз для каждого репозитория, я обычно использовал одно из двух простых, но хакерских решений:
- используется
git clone
для создания нового локального репозитория и удаления старого. После клонирования git новый репозиторий настраивается для отслеживания происхождения. - вручную отредактировал .git / config, чтобы создать источник мастер-трека.
Я думаю, что я смогу запустить команду, возможно, в какой-то форме, git remote
чтобы настроить существующий репозиторий, чтобы мастер отслеживал удаленный мастер. Кто-нибудь может сказать мне, что это за команда?
Ответы:
Используйте set-upstream arg:
Выполнение указанной выше команды обновляет ваш файл .git / config правильно и даже проверяется с помощью этого вывода:
«Локальное-имя-ветки филиала настроено для отслеживания удаленного имени-ветки удаленного филиала от источника».
РЕДАКТИРОВАТЬ: Как сказал martijn : «В версии Git v1.8.0 --set-upstream устарел. Вместо этого используйте --set-upstream-to».
См. Это для получения дополнительной информации.
источник
--set-upstream
устарел.--set-upstream-to
Вместо этого используйте .git remote show <remote>
чтобы узнать, какие филиалы отслеживаются вашими местными филиаламиgit push -u
set upstream
настраивает сопоставления без ввода кода? push заставляет вас нажать код для создания сопоставлений. Может быть, у вас еще нет кода, но вы хотите установить сопоставление?git help remote
должен показать вам то, что вам нужно знать. Я думаю, что ты хочешьВы также можете вручную отредактировать .git / config, чтобы настроить их.
источник
Вы также можете использовать это, если хотите создать новую локальную ветку для отслеживания удаленной ветки:
или даже лучше:
источник
В более новых версиях git вы можете использовать
источник
git branch --set-upstream BRANCH fatal: the '--set-upstream' option is no longer supported. Please use '--track' or '--set-upstream-to' instead.
The --set-upstream flag is deprecated and will be removed.
git branch master --set-upstream-to myupstream/master
источник
Перенесемся на три года вперед (посмотрите, что я там делал :-)), я попытался вытащить неотслеживаемую ветку с помощью Git Bash и получил
If you wish to set tracking information for this branch you can do so with:
Следующее достигло того, что мне было нужно:
$ git branch --set-upstream-to=origin/develop develop Branch 'develop' set up to track remote branch 'develop' from 'origin'.
источник
Используйте эту команду:
git clone [<options>] [--] <repo> [<dir>]
источник