2014-02-20 7 views
0

Просто начинайте с Git и хотите начать с правой ноги. Я сделал некоторые исследования и рекомендуемый рабочий процесс, кажется:Git Workflow and Rebase

-Один раз только: (например, Git workflow and rebase vs merge questions, "git pull" or "git merge" between master and development branches.) Клон центрального репо для личного репо

-Создание развивать отрасль

- У коммиты на развитие филиальной

-Каждый так часто тянет на мастер-ветви (получение изменений от центрального репо) и перебазироваться развивать филиал на обновленной главной ветви, если мастер действительно был обновлен

-Когда сделать разработку функции по разработке филиала мастера объединения и развитию отрасли (после того, как в очередной раз надевая мастер)

У меня есть несколько вопросов по этому поводу:

  1. Когда перебазироваться не удается из-за к объединить конфликт между обновленной ведущей веткой и веткой разработки (от разработчиков, редактирующих один и тот же файл), следует ли вместо этого отказаться и переключиться на слияние?

  2. Зачем сливаться, когда функция завершена, а не снова восстанавливается?

  3. Должен ли я нажимать также каждый раз, когда я заканчиваю разработку функции или исправление ошибки?

ответ

0
  1. Когда вы получите конфликт во время перебазирования, вы можете просто решить и продолжить перебазирования. Отмена и выполнение слияния вместо этого не помогут, вы все равно получите конфликт в любом случае.

  2. Вы захотите объединиться, когда закончите с особенностью, если вы пересобираете свою ветку функции/разработки сверху master или нет. Разница, которую делает предварительная перебаза, заключается в том, что она дает вам возможность переписать, структурировать, сформировать и представить свою историю в (надеюсь) более ясном способе, чем просто слияние, в результате чего происходит слияние (также известное как " non-fast-forward "слияние).

    Однако некоторым людям нравится создавать слияние в любом случае, чтобы показать, где произошла ветка. Вы можете принудительно совершить слияние даже после переустановки, используя флаг «non-fast-forward», т. Е. git merge --no-ff.

  3. Будь то после завершения функции или исправления ошибок зависит от проекта и как вы хотите поделиться своим кодом с другими людьми, если вы вообще его делитесь.