Я следую описанному ниже документообороту here, так как нашел много ссылок, указывающих на эту страницу как хороший рабочий процесс. Как упоминалось в статье, ветви «функции» разделяются между разработчиками, но не идут в центральный репозиторий.Как разделить ветку с функцией git (или тему) с несколькими разработчиками
Предположим, что разработчик «А» начинает новую ветвь функции с git checkout -b newfeature develop
. Теперь предположим, что разработчик «B» также должен работать над этой функцией. Это моя проблема.
Что я сделал:
- разработчик «B» добавляет машину Разработчику как удаленный
- разработчиков «B» работает
git branch remoteA/newfeature
- разработчик «B» работает в этой ветке, совершать свою работу и толкает изменения обратно на remoteA.
Шаг 3 не работает, прямо сейчас. Я получаю сообщение:
remote: error: By default, updating the current branch in a non-bare repository is denied, because it will make the index and work tree inconsistent with what you pushed, and will require 'git reset --hard' to match the work tree to HEAD.
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to 'ignore' or 'warn' in the remote repository to allow pushing into its current branch; however, this is not recommended unless you arranged to update its work tree to match what you pushed in some other way.
remote: error: To squelch this message and still keep the default behaviour, set receive.denyCurrentBranch' configuration variable to 'refuse'.
Я уже установлен sharedRepository = true
, но это не помогло.
У меня 2 вопроса:
- , что правильный способ поделиться полнометражной ветвью между разработчиками?
- Как я могу отменить изменения в репозитории разработчика B для оригинального разработчика разработчика?
И снова: Я бы не советовал толкая изменения между не-голыми хранилищами, поскольку это вводит только проблему, которую вы не хотите иметь :) – Tigraine