На данный момент я сделал следующие шаги:
- Клонировано удаленное репозиторий Git
- Разветвил основную ветку до экспериментальной
- отредактировал / протестировал / зафиксировал код в экспериментальной ветке
Сейчас я не готов объединить экспериментальное с основным. Однако я хочу вернуть его в удаленное репо, поскольку это репозиторий, которым я делюсь с несколькими коллегами. Я бы хотел, чтобы они увидели, что я сделал в экспериментальной ветке. Обычно я просто получаю доступ к удаленному репо через SSH.
Как поделиться своей локальной веткой в удаленном репо, не затрагивая главную ветку удаленного репо?
git
version-control
distributed
Coocoo4Cocoa
источник
источник
Ответы:
Согласно странице руководства git push :
Найдите ссылку, которая соответствует
experimental
в исходном репозитории (скорее всего, она найдетrefs/heads/experimental
), и обновите ту же ссылку (напримерrefs/heads/experimental
) в исходном репозитории с ее помощью.Если
experimental
бы не существовал удаленно, он был бы создан .Это то же самое, что:
Создайте ветку
experimental
в исходном репозитории, скопировав текущуюexperimental
ветку.Эта форма нужна только для создания новой ветки или тега в удаленном репозитории, когда локальное имя и удаленное имя отличаются ; в противном случае имя ссылки будет работать само по себе.
Или, как упоминалось в подсказке git , вы можете настроить «Удаленный доступ к ветке по умолчанию»:
Ян предлагает (для мерзавец> = 1.7.0 ) в
push -u
(илиpush --set-upstream
вариант):Таким образом, вам не нужно делать никаких git config.
источник
-u
опцию для,push
чтобы убедиться, что ваш локальный филиал отслеживает удаленный после публикации его. Если вы забыли использовать эту-u
опцию, вы можете просто ввестиgit push -u
потом в ветке, и тогда всеgit pull
будет работать.git push origin experimental
, нет никаких свидетельств загрузки каких-либо пакетов. Похоже, что в пульте дистанционного управления уже есть все материалы, полученные от вашего предыдущего нажатия; его просто нужно подключить к реф .git push origin experimental
просто создаст веткуexperimental
на пульте дистанционного управления.Если имя вашей ветки
experimental
и имя пульта ДУorigin
, то этоисточник
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 . Это поможет вам ответить на все ваши вопросы.
источник
ТЛ; др
больше информации
после того, как вы сделали несколько коммитов в свой:
вы нажимаете свою ветку с указанием восходящего потока в один из репозиториев пультов, как показано ниже:
пульты можно увидеть
обычно у вас будет один пульт по умолчанию
origin
. поэтому ваша команда будет выглядеть так:и все последующие нажатия могут быть выполнены просто с помощью
git push
.источник