Централизованный рабочий процесс / развертывание GIT - Инициализация репозитория и ветви функций
Хорошо, я просто хочу убедиться, что рабочий процесс моей настройки GIT правильный, и я полностью понимаю его, прежде чем начать использовать его должным образом. Я слежу за этим рабочим процессом, и эта тема будет только начинаться с инициализации и создания ветвей функций, а затем, когда я буду в этом уверен, я создам новую тему для выпусков и исправлений. Надеюсь, это поможет другим людям, которые хотят использовать GIT в аналогичном рабочем процессе.
Есть 3 разработчика, назовем их A, B и C, которые будут работать на своей локальной машине, у нас есть 4 удаленных сервера - "Разработка", "Подготовка", "Производство" и "Развертывание" (в качестве централизованного сервера). Разработчик А имеет каталог файлов на своем локальном компьютере.
Итак, я думаю, что рабочий процесс будет следующим.
Во-первых, мне нужно создать репозиторий в Unfuddle и локально, а затем отправить мои файлы на сервер Unfuddle.
- Создайте репозиторий в Unfuddle под названием "website" и дайте ему аббревиатуру "web"
- Создайте пару ключей SSH на серверах "Разработка", "Подготовка" и "Производство" и добавьте их в учетную запись "Разблокировать".
Разработчик A инициализирует Git-репозиторий в своем корне документа:
git init
Свяжите репозиторий Unfuddle с локальным хранилищем разработчика A и определите его как вышестоящий сервер:
git remote add unfuddle git@subdomain.unfuddle.com:username/web.git
git config remote.unfuddle.push refs/heads/master:refs/heads/master
Разработчик А добавляет все файлы в индекс
git add *
Разработчик А фиксирует все файлы
git commit -am 'initial commit'
Разработчик A помещает локально сделанные коммиты в хранилище Unfuddle Git.
git push unfuddle master
Теперь я должен увидеть все мои файлы в моем хранилище Unfuddle. Разработчики B и C теперь могут клонировать репозиторий, чтобы получить копию файлов сайта.
`git clone git@subdomain.unfuddle.com:username/web.git`
Особенность Отрасли:
Теперь каждый разработчик может начать создавать ветви функций, используя следующий рабочий процесс:
git checkout -b develop
git checkout -b feature\test develop
- Сделайте любые изменения кода
git commit -a -m "Make test code changes"
git checkout develop
git merge --no-ff feature\test
git branch -d feature\test
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). Эти сценарии будут зависеть от типа серверов, которые вы используете.