Как скопировать локальную ветку Git на удаленном РЕПО
Я сделал следующие шаги до сих пор:
- клонирования удаленного репозитория Git
- Разветвил главную ветвь на экспериментальную
- отредактированный/проверенный / зафиксированный код в экспериментальной ветке
теперь я не готов объединить эксперимент в мастер. Однако я хочу вернуть его в удаленное РЕПО, поскольку это репозиторий, который я разделяю с несколькими коллегами. Я бы хотел, чтобы они увидели, что я сделал в экспериментальном отделении. Я обычно просто получить доступ к удаленному РЕПО через SSH.
Как я могу поделиться своей локальной ветвью на удаленном РЕПО, не затрагивая главную ветвь удаленного РЕПО?
5 ответов:
по данным git push manual page:
git push origin experimentalнайти ссылку, которая соответствует
experimentalв исходном репозитории (скорее всего, он найдетrefs/heads/experimental), и обновить тот же ref (напримерrefs/heads/experimental) в исходном репозитории с ним.
еслиexperimentalне существует удаленно, он будет создан.это то же, что:
git push origin experimental:refs/heads/experimentalсоздать филиал
experimentalв исходном репозитории путем копирования текущегоexperimentalотделение.
Эта форма требуется только для создания новой ветви или тега в удаленном репозитории, когда локальное имя и удаленное имя отличаются; в противном случае имя ref само по себе будет работать.или, как упоминалось в git tip, вы можете настроить "удаленный филиал по умолчанию":
вы можете использовать git config для назначения удаленного по умолчанию для данной ветви. Этот пульт дистанционного управления по умолчанию будет использоваться для перемещения этой ветви, если не указано иное указанный.
это уже сделано для вас, когда вы используете git clone, что позволяет использовать git push без каких-либо аргументов, чтобы нажать локальную главную ветвь для обновления главной ветви исходного репозитория.
git config branch.<name>.remote <remote>можно использовать для указания этого вручную.
января предполагает (для git > = 1.7.0) the
push -u(илиpush --set-upstream) параметр:для каждой ветви, которая до дата или успешно нажата, добавьте ссылку вверх по течению (отслеживание), используемую без аргументов git-pull(1) и другими командами.
таким образом, вам не нужно делать никаких настроек git.
git push -u origin experimental
Если имя вашей ветви
experimental, и имя пульта дистанционного управленияorigin, потомgit push origin experimental
git push -u <remote-name> <branch-name>не работает, если вновь созданная ветвь не порождается из того же РЕПО, т. е. если вы не создали новую ветвь с помощьюgit checkout -b new_branch, то это не будет работать.например, я клонировал два разных репозитория локально, и мне пришлось скопировать repo2/branch1 в repo1/, а затем нажать его тоже.
этой ссылка помогла мне подтолкнуть мою локальную ветку (клонированную из другого РЕПО) к моему удаленному РЕПО:
здесь является авторитетной страницы GitHub для дистанционного управления на GitHub http://github.com/guides/push-a-branch-to-github. Это поможет вам ответить на все ваши вопросы.
tl; dr
$ git push --set-upstream origin your_new_branchподробнее
после того как вы сделали несколько коммитов в код:
$ git checkout -b your_new_branch $ git add file $ git commit -m "changed file"вы нажимаете свою ветку, указывая восходящий поток в один из репозиториев удаленных устройств, например:
$ git push --set-upstream REMOTE YOUR_BRANCHпульты можно увидеть по
$ git remote -vобычно у вас будет один пульт по умолчанию
origin. так что ваша команда будет выглядеть так:$ git push --set-upstream origin your_new_branchи все последующие толчки могут быть сделаны только с
git push.
Comments