Страницы

Поиск по вопросам

понедельник, 17 июня 2019 г.

Как отправить изменения из текущей ветки в новую ветку в удалённом репозитории?

Если выполнить команду git branch -a то она выводит вот такое
aleksey@aleksey:~/Downloads/NTZ/FittingRoom$ git branch -a * develop master remotes/origin/HEAD -> origin/master remotes/origin/master
2 ветки локальные и 2 на сервере... Локально master и develop , и теперь если я хочу сделать пуш на сервер, то мне обязательно нужно его делать в мастер... Но эта ветка у меня для релизов...
Как создать на сервере ветку дев?
ПРАВКА
$ git remote show origin * remote origin Fetch URL: https://gitlab.com/alekseytimoshchenko/NewTimeZone.git Push URL: https://gitlab.com/alekseytimoshchenko/NewTimeZone.git HEAD branch: master Remote branch: master tracked Local branch configured for 'git pull': master merges with remote master Local ref configured for 'git push': master pushes to master (up to date)


Ответ

$ git remote show origin ... Local branch configured for 'git pull': master merges with remote master Local ref configured for 'git push': master pushes to master (up to date)
здесь видно, что для команды git pull (без параметров) сконфигурирована только локальная ветка master (будут забираться обновления из удалённой ветки master). аналогично и для git push (без параметров) — только обновления из локальной ветки master будут отправляться в удалённый репозиторий (в удалённую ветку master).

локальную ветку можно сконфигурировать на отправку изменений в любую ветку удалённого репозитория (при вызове git push без параметров в этой ветке).
проще всего это сделать, однократно передав команде git push опцию -u (--set-upstream). естественно, надо указать и имя репозитория и ветку в нём, к которой текущая ветка будет «привязана».
для вашего конкретного случая:
сделайте ветку develop текущей:
$ git checkout develop отправьте изменения из неё, одновременно указав «привязку» к удалённой ветке develop в репозитории origin (приведён и пример вывода):
$ git push -u origin develop Total 0 (delta 0), reused 0 (delta 0) To url-репозитория * [new branch] develop -> develop Branch develop set up to track remote branch develop from origin.
последняя строчка как раз и сообщает о том, что локальная ветка develop «связана» с удалённой веткой develop (в репозитории origin).

теперь команда:
$ git remote show origin
покажет чуть больше информации про «привязки»:
... Local branches configured for 'git pull': develop merges with remote develop master merges with remote master Local refs configured for 'git push': develop pushes to develop (up to date) master pushes to master (up to date)
и выполняемая в дальнейшем в ветке develop команда git push (без параметров) отправит изменения именно в удалённую ветку develop

к слову
разово отправить изменения из любой локальной ветки в (почти) любую ветку в удалённом репозитории (и не осуществляя никаких «привязок») можно так:
$ git push репозиторий локальная_ветка:удалённая_ветка
например, для вашего случая:
$ git push origin develop:develop
если ветка с указанным именем не существует в удалённом репозитории, она будет создана. а если существует, то, в принципе, команда может завершиться с ошибкой — если «влить» изменения из локальной ветки в удалённую не получится. но это уже совсем другая история.

Комментариев нет:

Отправить комментарий