Централизованный рабочий процесс / развертывание GIT - Инициализация репозитория и ветви функций

Хорошо, я просто хочу убедиться, что рабочий процесс моей настройки GIT правильный, и я полностью понимаю его, прежде чем начать использовать его должным образом. Я слежу за этим рабочим процессом, и эта тема будет только начинаться с инициализации и создания ветвей функций, а затем, когда я буду в этом уверен, я создам новую тему для выпусков и исправлений. Надеюсь, это поможет другим людям, которые хотят использовать GIT в аналогичном рабочем процессе.

Есть 3 разработчика, назовем их A, B и C, которые будут работать на своей локальной машине, у нас есть 4 удаленных сервера - "Разработка", "Подготовка", "Производство" и "Развертывание" (в качестве централизованного сервера). Разработчик А имеет каталог файлов на своем локальном компьютере.

Итак, я думаю, что рабочий процесс будет следующим.

Во-первых, мне нужно создать репозиторий в Unfuddle и локально, а затем отправить мои файлы на сервер Unfuddle.

  1. Создайте репозиторий в Unfuddle под названием "website" и дайте ему аббревиатуру "web"
  2. Создайте пару ключей SSH на серверах "Разработка", "Подготовка" и "Производство" и добавьте их в учетную запись "Разблокировать".
  3. Разработчик A инициализирует Git-репозиторий в своем корне документа:

    git init

  4. Свяжите репозиторий Unfuddle с локальным хранилищем разработчика A и определите его как вышестоящий сервер:

    git remote add unfuddle git@subdomain.unfuddle.com:username/web.git

    git config remote.unfuddle.push refs/heads/master:refs/heads/master

  5. Разработчик А добавляет все файлы в индекс

    git add *

  6. Разработчик А фиксирует все файлы

    git commit -am 'initial commit'

  7. Разработчик A помещает локально сделанные коммиты в хранилище Unfuddle Git.

    git push unfuddle master

Теперь я должен увидеть все мои файлы в моем хранилище Unfuddle. Разработчики B и C теперь могут клонировать репозиторий, чтобы получить копию файлов сайта.

`git clone git@subdomain.unfuddle.com:username/web.git`

Особенность Отрасли:

Теперь каждый разработчик может начать создавать ветви функций, используя следующий рабочий процесс:

  1. git checkout -b develop
  2. git checkout -b feature\test develop
  3. Сделайте любые изменения кода
  4. git commit -a -m "Make test code changes"
  5. git checkout develop
  6. git merge --no-ff feature\test
  7. git branch -d feature\test
  8. git push unfuddle develop

ОК, так что в следующей части я не уверен. Мы перенесли изменения в функции на централизованный сервер Unfuddle, однако другие разработчики должны получить эти изменения, поэтому им нужно будет создать ветку 'Develop', а затем сделать git pull unfuddle develop? Я прочитал выборку и слияние лучше, чем тянуть, это так? Если это так, будет ли это git fetch unfuddle develop затем git merge develop?

1 ответ

Решение

Звучит солидно.

Что касается pull против fetchЯ думаю, что если вы точно знаете, что делает тяга (fetch/merge), вы можете использовать его свободно. Много новичков для использования мерзавцев pull не понимая, что он делает, но кажется, что вы это поняли. Я бы просто убедился, что ваша команда знает, в чем разница.

Единственный шаг, который я не вижу, - это развертывание на ваших веб-серверах. fetch/merge или же pull на обновлениях. Вы можете начать этот процесс вручную и подумать об автоматизации в будущем. Вы должны быть в состоянии сделать это с помощью git-хуков (они должны поддерживаться в Unfuddle). Эти сценарии будут зависеть от типа серверов, которые вы используете.

Другие вопросы по тегам