Если выполнить команду 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
если ветка с указанным именем не существует в удалённом репозитории, она будет создана. а если существует, то, в принципе, команда может завершиться с ошибкой — если «влить» изменения из локальной ветки в удалённую не получится. но это уже совсем другая история.
Комментариев нет:
Отправить комментарий