Про Git

SpyDEL

New Member
29.12.2013
1
0
#1
Недавно стал разбираться с git. Скоро я буду разрабатываться проект совместно с несколькими разработчиками. Почитал мануалы про git. Выстроил схему у себя в голове и потренировался. Но возникли вопросы. Прошу вашей помощи.

Приведу пример, а ниже вопросы (поправьте меня пожалуйста, если я неправильно представляю сам процесс).

1. Есть сайт site.ru, сделал репозиторий, проиндексировал файлы и сделал первый коммит.
2. На другой домен для разработки dev.ru (который на другом сервере) сюда клонировал (использую phpStrom) репозиторий из site.ru.
3. Локально с разработчиками дорабатываем проект, коммитим изменения на dev.ru.
4. Когда все закончили переношу изменения в бой на site.ru.

Вопросы:
1. Когда из phpStrorm делаю push на dev.ru, то если не переключиться из ветки master выдается ошибка

Push failed
remote: error: refusing to update checked out branch: refs/heads/master[K
remote: error: By default, updating the current branch in a non-bare repository[K
remote: error: is denied, because it will make the index and work tree inconsistent[K
remote: error: with what you pushed, and will require 'git reset --hard' to match[K
remote: error: the work tree to HEAD.K
remote: error: [K
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to[K
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into[K
remote: error: its current branch; however, this is not recommended unless you[K
remote: error: arranged to update its work tree to match what you pushed in some[K
remote: error: other way.[K
remote: error:[K
remote: error: To squelch this message and still keep the default behaviour, set[K
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.[K
error: failed to push some refs to 'ssh://root@**.**.**.**/var/www/...../project/.git'

, а если создать другую ветку и переключиться на нее, то все пушится. В связи с этим вопрос почему так?
2. Когда происходит push, то почему то пушится все в ветку master, это так задумано или можно выбирать куда пушить?
3. После того как кто то сделает push, как я понял на сервере нужно делать каждый раз индексирование файлов и коммит, чтобы отслеживать изменения (конфликты)? Или я что-то не так понял.
4. Когда все изменения будут готовы, все разработчики сделают, то что нужно. Как мне на удаленный сервер site.ru переместить окончательную ветку из dev.ru?