Рабочий процесс Git: разветвление проекта и поддержка локальной измененной копии, но постоянное обновление

Я пытаюсь найти лучший рабочий процесс для поддержки локальной копии проекта, размещенного на github (moodle), с настройками, сохраняя при этом возможность поддерживать нашу копию в актуальном состоянии. Скажи мне, если то, что я собираюсь сделать, совершенно безумно:

  1. Разветвить проект (github.com/moodle/moodle --> github.com/sfu/moodle)
  2. Создайте удаленный восходящий поток (git remote add upstream git://github.com/moodle/moodle.git && git fetch upstream)
  3. Создайте ветку для нашей пользовательской разработки и сохраните master в первозданном виде.
  4. Когда мы хотим обновить наш форк, обновите нетронутую ветку (git checkout master && git fetch upstream && git merge upstream/master)
  5. Слияние мастера с нашей веткой настроек (git checkout custom && git merge master)

Имеет ли это смысл?


person grahamb    schedule 21.02.2012    source источник


Ответы (2)


Да, это имеет смысл. Хотя шаг №4 можно немного упростить до git checkout master && git pull --ff-only upstream master.

--ff-only гарантирует, что вы не получите каких-либо коммитов слияния в исходной копии.

person leedm777    schedule 21.02.2012

Имеет смысл

... и если хотите, сравните с библией:

успешная модель ветвления git

person Luca G. Soave    schedule 22.02.2012